Лекция: Структурные операторы
Структурные операторы представляют собой совокупности нескольких операторов. К ним относятся:
— составной оператор;
— операторы цикла;
— условный оператор;
— оператор варианта;
— оператор присоединения.
4.9.1. Составной оператор.
Составным оператором называется последовательность операторов, ограниченных ключевыми словами Begin и End; (операторные скобки).
Форма записи
Begin
Оператор1;
Оператор2;
...... .
Операторn
End ;
Перед End символ; можно не ставить.
Замечание. Составной оператор может содержать любые операторы. Delphi не накладывает никаких ограничений на характер операторов, входящих в составной оператор. Составной оператор может содержать другие составные операторы, глубина их вложенности не ограничена.
Основное назначение составных операторов – обеспечить возможность писать программы по современной технологии структурного программирования – без оператора GOTO.
4.9.2. Условный оператор.
Условный оператор предназначен для оформления конструкции «Развилка» структурного пограммирования (рис.4.15.1.).
Рис.4.15.1
В языке ТР такой фрагмент алгоритма оформляется с помощью условного оператора, форма записи которого имеет вид
If < условие > Then <оператор 1> Else <оператор 2> ;.
Здесь If (если), Then (тогда), Else (иначе) – зарезервированные слова; <условие>-произвольное выражение логического типа; <оператор 1>, <оператор 2> -по одному простому или составному оператору. Условный оператор реализует следующий алгоритм. Сначала вычисляется условное выражеие < условие >. Если результат равен True, то выполняется <оператор 1> (<оператор 2> пропускается); если результат есть False то выполняется <оператор 2> (<оператор 1> пропускается.
Условный оператор удобно записывать по схеме алгоритма, используя следующие простые правила:
— после If записываем условие, указанное в ромбике;
— после Then записываем оператор указанный по пути «Да»;
— после Else записываем оператор указанный по пути «Нет»;
— если по пути «Да» или по пути «Нет» располагается более одного оператора, то помещаем их в составной оператор.
Пример записи условного оператора приведен на рис. 4.15.2.
Рис.4.15.2.
Пример записи условного оператора с использованием составного оператора приведен на рис.4.15.3.
Рис.4.15.3
В данном случае по пути «Нет» в алгоритме указано два оператора присваивания поэтому после Else эти операторы помещены в составной оператор.
Замечание. Составной оператор может содержать любые операторы, в том числе и составные. Пример такой конструкции приведен на рис.4.15.4.
Рис.4.15.4.
Как известно в конструкции развилка одна из ветвей может быть пустой. Обычно пустой делают ветвь по пути «НЕТ». В этом случае часть, начинающуюся со слова «ELSE» исключают из оператора IF. Пример оформления такой конструкции приведен на рис.4.15.5.
Рис.4.15.5.
4.9.3 Цикл с предусловием, конструкция While.
В алгоритмах возможны две конструкции циклических процессов: циклы с предусловием и циклы с постусловием. Для оформления таких конструкций в ТР есть соответствующие операторы, причем для цикла с предусловием предусмотрено два вида цикла: цикл While и цикл For.
Форма записи цикла While имеет вид:
While < условие > do < оператор >;
Здесь While (до тех пор пока), do (выполнять) – зарезервированные слова; <условие > -выражение логического типа; < оператор > — один простой или составной оператор.
Эту запись можно прочитать так:
ДО ТЕХ ПОР ПОКА <условие > истинно ВЫПОЛНЯТЬ < оператор >.
Если выражение <условие > имеет значение True, то выполняется < оператор>, после чего снова осуществляется проверка выражения <условие >. Как только выражение <условие > получит значение False, осуществляется выход из цикла, то есть управление передается оператору, расположенному после < оператор > цикла..
Правила:
— если тело цикла содержит более одного оператора, то необходимо использовать составной оператор;
— хотя бы один из параметров, входящих в выражение <условие > должен изменяться в теле цикла. Пример записи цикла с помощью рассмотренной конструкции (вычисление таблицы значений функции) приведен на рис.4.15.6.
Рис.4.15.6.