Операторы управления. Управляющие структуры

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

Каким образом с помощью программы можно указать порядок выполнения операций? Для этого в программе используют три основных категории управляющих структур:

§ Последовательность;

§ Ветвление (порядок выполнения определяется значением условия);

§ Цикл (повторение).

Эти структуры дают нам «конструктор», комбинируя элементами которого, можно реализовать процесс вычислений произвольной сложности, сохраняя отчетливое видение общей структуры процесса.

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

Базовыми структурами являются структуры Последовательность, Если_То_ИначеиЦикл_Пока.

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

Рассмотрим управляющие структуры и операторы языка 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;