Циклические программы в языке программирования "Pascal"
Цикл – разновидность управляющей конструкции, которая предназначена для организации многократного повторения (исполнения) набора операторов (команд).
Все циклы делятся на две группы: циклы с условием и циклы с параметром (for). Циклы с условием также можно разбить на две группы: циклы с предусловием (while) и циклы с постусловием (repeat – until). Схематично разбиение на типы циклов можно изобразить следующим образом:
Рассмотрим цикл с предусловием while.
Оператор цикла с предусловием выполняет действия заранее неизвестное число раз. В заголовке цикла находится некоторое логическое выражение (условие). Если условие истинно, то тело цикла выполняется, если ложно – то нет. Так как верность логического выражения проверяется в начале, тело цикла может не выполнится ни разу.
Когда тело цикла было выполнено, то ход программы снова возвращается в начало цикла. Условие выполнения тела снова проверяется (находится значение логического выражения). Тело цикла выполнится столько раз, сколько раз логическое выражение истинно. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в условии цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация, когда логическое выражение окажется ложным. Иначе произойдет зацикливание.
Структура цикла while:
While <условие> do
Begin
<тело цикла>;
End;
Структура цикла repeat – until:
Repeat
<тело цикла>;
Until
<условие>;
Последний тип циклов: цикл с параметром for.
Часто цикл for называют циклом со счетчиком. Этот цикл используется, когда число повторений не связано с тем, что происходит в теле цикла. Т.е. количество повторений может быть вычислено заранее.
Счетчик – это переменная любого типа (integer, real, и т. д.). Начальные и конечные значения могут быть представлены не только значениями, но и выражениями, возвращающими совместимые с типом счетчика типы данных. Если между начальным и конечным выражением указано служебное слово to, то на каждом шаге цикла значение параметра будет увеличиваться на единицу. Если же указано downto, то значение параметра будет уменьшаться на единицу.
В заголовке цикла указываются два значения. Первое значение присваивается переменной-счетчику (обычно i или j), от этого значения начинается отсчет количества итераций (повторений). Отсчет идет всегда с шагом равным единице. Второе значение указывает, при каком значении счетчика цикл должен остановиться. Другими словами, количество итераций цикла определяется разностью между вторым и первым значением плюс единица. В данном цикле, в отличие от циклов while и repeat – until (в них изменялось логическое выражение (условие) в цикле), в теле цикла не должны содержаться операторы, изменяющие счетчик цикла.
Структура цикла for (2 варианта ):
For i := n1 to n2 do
Begin
<тело цикла>;
End;
For i := n1 downto n2 do
Begin
<тело цикла>;
End;
Примеры программ для выполнения одной и той же задачи,
но разными способами:
Задача: Найти сумму чисел от 1 до 12.
1. С предусловием Program summa12;
var s, i,h:integer;
Begin
S:=0; i:=1; h:=1;
while i<=12 do
Begin
s:=s+i;
i:=i+h;
end;
writeln (‘сумма=’,s);
end. |
2. C постусловием
Program summa12;
var s, i,h:integer;
Begin
S:=0; i:=1; h:=1;
repeat
s:=s+i;
i:=i+h;
until i>12;
writeln (‘сумма=’,s);
end. |
3. С параметром
Program summa12;
var s, i:integer;
Begin
S:=0;
for i:=1 to 12 do
s:=s+i;
writeln (‘сумма=’,s);
end. |