Свойства алгоритма.
В математике для решения типовых задач мы используем определенные правила, описывающие последовательности действий. Например, правила сложения дробных чисел, решения квадратных уравнений и т. д. В повседневной жизни инструкции и правила представляют собой последовательность действий, которые необходимо выполнить в определенном порядке. Для решения любой задачи надо знать, что дано, что следует получить, какие действия и в каком порядке следует для этого выполнить.
Суть состоит в том, что если алгоритм разработан, то его можно вручить для выполнения любому исполнителю, не знакомому с решаемой задачей, и точно следуя правилам алгоритма, исполнитель получит ее решение.
Алгоритм удовлетворяет следующим основным свойствам:
· конечность (дискретность) команд и выполняемых по ним действий алгоритма.
· выполнимость в определенной операционной среде (в определенном классе исполнителей).
· результативность отдельных команд и всего алгоритма.
· применимость алгоритма ко всем возможным входным данным конкретного класса задач.
· определенность (детерминированность) команд и всего алгоритма для всех входных данных.
· формализованное, конструктивное описание (представление) команд алгоритма.
· минимальная полнота системы команд алгоритм.
· непротиворечивость любых команд алгоритма на любом наборе входных данных.
Любой алгоритм ориентирован на некоторый общий метод решения класса задач и представляет собой формализованную запись метода, процедуры.
Алгоритм, записанный на некотором алгоритмическом, формальном языке, состоит из заголовка алгоритма (описания параметров, спецификаций класса задач) и тела алгоритма (последовательности команд исполнителя, преобразующих входные параметры в выходные).
Для записи, исполнения, обмена и хранения алгоритмов существуют различные средства: языки (словесный способ), псевдокоды, блок-схемы, структурограммы (схемы Нэсси-Шнайдермана), Р-схемы, школьный алгоритмический язык (ШАЯ), различные языки программирования.
Словесный способ записи алгоритмов использует средства обычного языка, но с тщательно отобранным набором слов, фраз, не допускающим повторений, синонимов, двусмысленностей, лишних слов. Недостатком такого способа записи алгоритма является отсутствие более или менее строгой формализации и наглядности вычислительного процесса. Вместе с тем с помощью данного способа можно описывать алгоритмы с произвольной степенью детализации.
Формульно-словесный способ записи алгоритма основан на задании инструкций о выполнении конкретных действий с использованием математических символов и выражений в сочетании со словесными пояснениями.
Графический способ представления алгоритма использует элементы блок-схем. Блок-схемой называется графическое изображение структуры алгоритма, в котором каждый этап процесса переработки данных представляется в виде геометрических фигур (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемых операций. Последовательность выполнения пунктов алгоритма, описываемого блок-схемой, устанавливается путем упорядоченного размещения блоков на схеме и объединения их линиями потока информации.
В таблице приведены наиболее часто употребляемые символы.
Название символа | Обозначение и пример заполнения | Пояснение |
Процесс | ![]() | Вычислительное действие или последовательность действий |
Решение | ![]() | Проверка условий |
Модификация | ![]() | Начало цикла |
Предопределенный процесс | ![]() | Вычисления по подпрограмме, стандартной подпрограмме |
Ввод-вывод | ![]() | Ввод-вывод |
Пуск-останов | ![]() | Начало, конец алгоритма, вход и выход в подпрограмму |
Документ | ![]() | Вывод результатов на печать |
Блок-схема является исключительно наглядным и простым способом записи алгоритма. При этом не накладывается никаких ограничений на степень детализации в изображении алгоритма. Выбор ее целиком лежит на программисте. Однако необходимо иметь в виду, что излишне общий характер блок-схемы нежелателен из-за малой информативности, а очень детальная блок-схема проигрывает в наглядности. Поэтому для сложных и больших алгоритмов целесообразно составлять несколько блок-схем разной степени детализации. Блок-схема первого уровня отображает весь алгоритм целиком. Блок-схемы второго уровня раскрывают логику отдельных блоков схемы первого уровня. При необходимости могут быть составлены блок-схемы последующих уровней с еще большей степенью детализации.