Операторы управления. Управляющие структуры
Процессор компьютера способен выполнять некоторое число элементарных операций над данными: сложение, вычитание, присваивание, сравнение и другие. Процессор может самостоятельно управлять последовательностью этих операций во времени по заданной программе.
Каким образом с помощью программы можно указать порядок выполнения операций? Для этого в программе используют три основных категории управляющих структур:
§ Последовательность;
§ Ветвление (порядок выполнения определяется значением условия);
§ Цикл (повторение).
Эти структуры дают нам «конструктор», комбинируя элементами которого, можно реализовать процесс вычислений произвольной сложности, сохраняя отчетливое видение общей структуры процесса.
Все управляющие структуры имеют один вход и один выход.
Базовыми структурами являются структуры Последовательность, Если_То_ИначеиЦикл_Пока.
Все современные языки программирования имеют операторы, которые однозначно реализуют управляющие структуры.
Рассмотрим управляющие структуры и операторы языка Object Pascal, которые их реализуют (таблица 1.3). Для графического представления управляющих структур будем использовать следующие узлы:
Таблица 1.3 Управляющие структуры
Управляющая структура | Оператор языка Object Pascal | Пример |
Последовательность | A; B; Сначала выполняется A, затемB. A, B – операторы обработки информации | readln(x); y:= x; |
Если_То_Иначе | if P then A else B; Если значение логического выражения P истинно, то выполняется A, иначе – B. | if x>0 then y:= 1 else y:=0; |
Если_То | if P then A; | if x>0 then y:= 1; |
Выбор | case K of 1: A; 2: B; 3: C else D; end; K– переменная («переключатель»), значение которой определяет выполнение операторов: если K = 1, то A; если K = 2, то B; если K = 3, то C иначе – D; | var ch: char; begin . . . case ch of '0'..'9': writeln('Это цифра'); 'a'..'z': writeln('Это буква') else writeln('Это другой символ'); end; . . . end. |
Цикл_Пока (цикл с предусловием) | while P do A; Оператор A выполняется,пока значение логического выражения Pистинно. | while N>0 do N:=N-1; |
Цикл_со_счетчиком (цикл с предусловием) | for i:= <начальное значение> to <конечное значение> do A; Переменная i– это показатель цикла, значение которого на каждом шаге цикла автоматически увеличивается (или уменьшается) на 1. | for i:= 1 to N do writeln(i); for i:= N downto 1 do writeln(i); |
Цикл_До (цикл с постусловием) | repeat A; until P; Оператор Aвыполняется до тех пор, пока логическое выражение Pне станет истинным. | repeat N:=N-1; until N <= 0; |