Алгоритм и его свойства. Правила построения блок-схем алгоритмов. Базовые канонические структуры алгоритмов

Алгоритм и его свойства

Алгоритмом называется точная инструкция исполнителю в понятной для него форме, определяющая процесс достижения поставленной цели на основе имеющихся исходных данных за конечное число шагов.

Основными свойствами алгоритмов являются:

1. Универсальность (массовость) - применимость алгоритма к различным наборам исходных данных.

2. Дискретность - процесс решения задачи по алгоритму разбит на отдельные действия.

3. Однозначность - правила и порядок выполнения действий алгоритма имеют единственное толкование.

4. Конечность - каждое из действий и весь алгоритм в целом обязательно завершаются.

5. Результативность - по завершении выполнения алгоритма обязательно получается конечный результат.

6. Выполнимость - результата алгоритма достигается за конечное число шагов.

Алгоритм считается правильным, если его выполнение дает правильный результат. Соответственно алгоритм содержит ошибки, если можно указать такие допустимые исходные данные или условия, при которых выполнение алгоритма либо не завершится вообще, либо не будет получено никаких результатов, либо полученные результаты окажутся неправильными.

Выделяют три крупных класса алгоритмов:

- вычислительные алгоритмы, работающие со сравнительно простыми видами данных, такими как числа и матрицы, хотя сам процесс вычисления может быть долгим и сложным

информационные алгоритмы, представляющие собой набор сравнительно простых процедур, работающих с большими объемами информации (алгоритмы баз данных);

- управляющие алгоритмы, генерирующие различные управляющие воздействия на основе данных, полученных от внешних процессов, которыми алгоритмы управляют.

Правила построения блок-схем алгоритмов

Блок-схема является формой представления алгоритма с помощью графических символов. Графические символы, их размеры, а также правила построения блок-схем определены государственными стандартами. Рассмотрим часто употребляемые графические символы (полный список включает 42 символа).

Процесс. Выполнение операции или группы операций, в результате чего изменяется значение, форма представления или расположения данных.
Внутри символа или же в виде комментария на естественном языке или в виде формулы записываются действия, которые производятся при выполнении операции или группы операций.

Решение. Выбор направления выполнения алгоритма или программы в зависимости от некоторых переменных условий.

Символ используется для изображения унифицированных структур:

РАЗВИЛКА ПОЛНАЯ

РАЗВИЛКА НЕПОЛНАЯ

ВЫБОР

ЦИКЛ-ДО

ЦИКЛ-ПОКА

Модификация. Выполнение операций, меняющих команды или группу команд, изменяющих программу.
Символ используется для изображения унифицированной структуры ЦИКЛ С ПАРАМЕТРОМ. Внутри символа записывается параметр цикла с указанием начального и конечного значений, а также шаг изменения цикла, если он не равен единице.

Предопределенный процесс. Использование ранее созданных и отдельно описанных алгоритмов или программ (процедур, функций, программных модулей).Символ служит для указания обращения к процедурам, функциям, программным модулям.

Ручной ввод. Ввод данных оператором в процесс обработки при помощи устройства, непосредственно сопряженного с компьютером (например, клавиатура).

Дисплей. Ввод - вывод данных в случае, если непосредственно подключенное к процессору устройство воспроизводит данные и позволяет оператору вносить изменения в процессе их обработки.

Документ. Ввод - вывод данных, носителем которых служит бумага.

Линия потока. Указание последовательности связей между символами.

Перечислим некоторые правила изображения линий потока:

1) линии потока должны быть параллельны линиям внешней рамки блок-схемы (границам листа, на котором изображена блок-схема);

2) направление линии потока сверху вниз и слева направо принимается за основное и стрелками не обозначается, в остальных случаях направление линии потока обозначается стрелками;

3) изменение направления линии потока производится под углом 90 градусов.

Соединитель. Указание связи между прерванными линиями потока, связывающими символы. Если блок-схема состоит из нескольких частей, расположенных на одной странице, то линия потока одной части заканчивается символом СОЕДИНИТЕЛЬ, а линия потока на продолжении блок-схемы начинается с этого же символа. Внутри символов СОЕДИНИТЕЛЬ ставятся одинаковые порядковые номера, соответствующие разорванной линии потока.

Межстраничный соединитель. Указание связи между разъединенными частями схем алгоритмов и программ, расположенных на разных листах.
Данный символ служит для тех же целей, что и соединитель, но при расположении частей блок-схемы на разных страницах.

Пуск - останов. Начало, конец, прерывание процесса обработки данных или выполнения программы.

Комментарий. Связь между элементами схемы и пояснениями.
Позволяет включать в блок-схему пояснения, формулы и другую информацию.

Размеры символов должны удовлетворять соотношению b = 1.5a (a и b указаны на рис. 1). На этом же рисунке показан пример использования символа КОММЕНТАРИЙ.

Рис. 1. Фрагмент блок-схемы

Каждому символу на блок-схеме присваивается порядковый номер. Для примера на рис. 1 символу ПРОЦЕСС присвоен порядковый номер 4.

канонические структуры алгоритмов

Доказано, что любую программу можно написать с использованием трех управляющих структур:

- следования, или последовательности операторов;

- развилки, или условного оператора;

- повторения, или оператора цикла.

Программа, составленная из канонических структур, будет называться регулярной программой, т.е. иметь 1 вход и 1 выход, каждый оператор в программе может быть достигнут при входе через ее начало (нет недостижимых операторов и бесконечных циклов). Управление в такой программе передается сверху-вниз. Снабженные комментариями, такие программы хорошо читабельны.

1) следование

A; B;

Действия А и В могут быть:

- отдельным оператором;

- вызовом с возвратом некоторой процедуры;

- другой управляющей структурой.

2) развилка

IF P then A else B;

Проверка P представляется предикатом, т.е. функцией, задающей логическое выражение или условие, значением которого может быть истина или ложь. Эта структура может быть неполной, когда отсутствует действие, выполняемое при ложном значении логического выражения. Тогда структура будет следующая:

IF P then A ;

3) повторение

цикл – пока

While P do A ;

Действие А будет повторяться до тех пор, пока значение предиката будет оставаться истинным. Поэтому в действии А должно изменяться значение переменных, от которых зависит Р. В противном случае произойдет зацикливание. Вычисление предиката производится до начала выполнения действия А, и может случиться так, что действие А не будет выполняться ни разу.

цикл – до

Repeat A until P;

Повторение типа Repeat until всегда выполняется хотя бы 1 раз. Действие А перестает выполняться, как только предикат становится истинным.

4) выбор – переключатель case (обобщение развилки), структура, облегчающая программирование без ущерба для ясности программы. Структура выбор полезна в том случае, когда требуется выбрать одну из нескольких альтернатив.

В зависимости от значения Р выполняется одно из действий А, В, …Z. После чего происходит переход к выполнению следующей управляющей структуры.