
Базовые канонические структуры алгоритмов
Доказано, что любую программу можно написать, используя комбинации трех управляющих структур:
- следования или последовательности операторов;
- развилки или условного оператора;
- повторения или оператора цикла.
Программа, составленная из канонических структур, будет называться регулярной программой, т.е. иметь 1 вход и 1 выход, каждый оператор в программе может быть достигнут при входе через ее начало (нет недостижимых операторов и бесконечных циклов). Управление в такой программе передается сверху-вниз. Снабженные комментариями, такие программы хорошо читабельны.
1) Следование
Действия А и В могут быть:
- отдельным оператором;
- вызовом с возвратом некоторой процедуры;
- другой управляющей структурой.
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. После чего происходит переход к выполнению следующей управляющей структуры.
Контрольные вопросы.
Дайте определение алгоритму. Опишите свойства алгоритма.
Перечислите способы записей алгоритмов.
Чем отличается компилятор от интерпретатора?
Что такое подпрограмма?
Перечислите способы отображения алгоритмов.
Особенности словесного способа изображения алгоритмов.
Особенности формульно-словесного способа изображения алгоритмов.
Особенности изображения алгоритмов с помощью операторных схем (псевдокода).
Особенности изображения алгоритмов с помощью структурных диаграмм.
Особенности блок-схемного способа изображения алгоритмов.
Основные символы, использующиеся при составлении блок-схем.
Дайте понятие регулярной программы.
Особенности использования базовых конструкций «следование» и «повторение».
Особенности использования базовых конструкций «развилка» и «выбор».