Читайте также:
|
|
Составной оператор используется в том случае, когда по правилам синтаксиса сложного оператора должен стоять только один оператор, а в алгоритме необходимо выполнить некоторую последовательность действий. Составной оператор объединяет эту последовательность в единый по синтаксису оператор путем заключения в операторные скобки begin и end:
ВEGIN
<оператор1>;
<оператор2>;
...;
<операторN>
END;
Для составного оператора допускается любая глубина вложенности:
BEGIN
BEGIN
...
BEGIN
...
END;
...
END;
END.
Пустой оператор не выполняет никаких действий и может быть использован для передачи управления в конец составного оператора. Пустой оператор записывается в виде точки с запятой.
Пpимеpы пустых опеpатоpов:
1);; 2) <метка>:;
2.3.6.Операторы цикла
Существует три разновидности операторов цикла:
1) счетный оператор цикла (оператор цикла с параметром);
2) оператор цикла с предусловием;
3) оператор цикла с постусловием.
Для любого оператора цикла вход в цикл возможен только через его начало, выход осуществляется как следствие естественного окончания цикла, так и путем выполнения оператора перехода GOTO или процедур выхода, содержащихся внутри цикла.
Счетный оператор цикла реализует циклический процесс с известным числом повторений и имеет две формы записи:
Первая форма позволяет наращивать параметр цикла на единицу:
FOR <параметр _ цикла>:= <min _ значение> TO <max _ значение> DO <оператор>;
<Параметр_цикла> - это переменная целого либо любого порядкового типа,
<min> и <max> значения - это выражения, определяющие соответственно начальное и конечное значения параметра цикла. Их типы должны быть совместимыми для присваивания с параметром цикла.
Вторая форма позволяет уменьшать на единицу значение параметра цикла:
FOR <параметр цикла>:=<max значение> DOWNTO <min значение> DO <оператор>;
Пример. Вычислить Y=1+1/2+1/3+...+1/N.
Для реализации программы необходимо многократно произвести вычисления по формуле Y=Y+1/I при изменении параметра I от одного до N.
Реализация 1: Y:=0;
FOR I:=1 TO N DO Y=Y+1/I;
Реализация 2: Y:=0;
FOR I:=N DOWNTO 1 DO Y=Y+1/I;
Значение параметра цикла в теле цикла может не использоваться, а лишь выполнять функцию счетчика. Например, пусть необходимо вычислить Y=Xn. Тогда фрагмент тела программы запишется в следующем виде:
Y:=1;
FOR I:=1 TO N DO Y=Y*X;
Два других оператора цикла (с пpедусловием и постусловием) проверяют условия повторения или окончания цикла, но не изменяют значения параметра цикла. Они организуют выполнение цикла с неизвестным заранее числом повторений.
Оператор цикла с предусловием используется в случае, когда число повторений цикла заранее не известно и действия в цикле по условию могут ни разу не выполниться. Структура этого оператора имеет вид:
WHILE <условие> DO <оператор>;
где <условие> – это любое логическое выражение, истинность которого проверяется в начале каждой итерации (условие выполнения тела цикла), <оператор> – произвольный оператор языка, в том числе и составной.
Если условие истинно, то выполняется оператор, стоящий за ключевым словом DO, если условие ложно, то производится выход из цикла.
После выполнения <оператора> вновь вычисляется и анализируется <условие>, и вновь, в случае его истинности, выполняется <оператор>. Эти действия повторяются до тех пор, пока <условие> не станет ложным.
Пример. Вычислить Y=1+1/2+1/3+...+1/N. Фpагмент пpогpаммы с применением оператора WHILE может быть составлен в следующем виде
BEGIN
Y:=0; I:=1; WHILE I<= N DO begin Y:=Y+1/I; I:=I+1 end;
END.
Оператор цикла с постусловием производит проверку условия после выполнения операторов тела цикла, которые должны выполниться хотя бы один раз. Его стpуктуpа следующая:
REPEAT <оператор1>;
...
<операторN>
UNTIL <условие _ выхода>;
При истинности значения логического выражения <условие_выхода> выполняется выход из цикла. В данном операторе ключевые слова REPEAT и UNTIL выполняют роль операторных скобок, поэтому точку с запятой перед словом UNTIL не ставят.
Пример фрагмента программной реализации вычисления значения Y=1+1/2+1/3+...+1/N при использовании оператора цикла с постусловием:
BEGIN
Y:=0; I:=1;
REPEAT Y:=Y+1/I;
I:=I+1
UNTIL I>N;
END.
Дата добавления: 2015-09-05; просмотров: 70 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Условный оператор IF | | | Типизированные константы |