Используемые учебники и учебные пособия:
Циклические конструкции.
В большинстве задач, встречающихся на практике, необходимо производить многократное выполнение некоторого действия. Такой многократно повторяющийся участок вычислительного процесса называется циклом.
Если заранее известно количество необходимых повторений, то цикл называется арифметическим. Если же количество повторений заранее неизвестно, то говорят об итерационном цикле.
В итерационных циклах производится проверка некоторого условия, и в зависимости от результата этой проверки происходит либо выход из цикла, либо повторение выполнения тела цикла. Если проверка условия производится перед выполнением блока операторов, то такой итерационный цикл называется циклом с предусловием (цикл "пока"), а если проверка производится после выполнения тела цикла, то это цикл с постусловием (цикл "до").
При решении задач на программирование циклических конструкций возможно применение как арифметических, так и итерационных циклов.
Иногда оказывается уместным решить одну и ту же задачу тремя различными способами.
Пример 1. Найти сумму натуральных чисел от 1 до 100.
Напишем программу выполнения данного алгоритма на языке Turbo Pascal с использованием арифметического цикла.
Арифметические циклы
Синтаксис:
for переменная := значение 1 to значение 2 do оператор
или
for переменная := значение 1 downto значение 2 do оператор
Оператор for вызывает оператор, находящийся после слова do, по одному разу для каждого значения в диапазоне от значения 1 до значения 2.
Как и в случае использования оператора условного прехода, следует помнить, что синтаксис языка допускает запись только одного оператора после ключевого слова do, поэтому, если вы хотите в цикле выполнить группу операторов, обязательно надо объединить их в составной оператор (окаймить операторными скобками begin ... end). В противном случае будет сделана логическая ошибка программы.
Program summa;
var i, s : integer;
begin
for i:=1 to 100
do s:= s+i ;
writeln (‘s=’, s);
readln;
End.
Итерационные циклы с предусловием
Синтаксис:
while выражение do оператор
Оператор после do будет выполняться до тех пор, пока логическое выражение принимает истинное значение (True). Логическое выражение является условием возобновления цикла. Его истинность проверяется каждый раз перед очередным повторением оператора цикла, который будет выполняться лишь до тех пор, пока логическое выражение истинно. Как только логическое выражение принимает значение ложь (False), осуществляется переход к оператору, следующему за while.
Переформулируем предыдущую задачу.
Пример 2. Найти значение целого числа, начиная с которого сумма чисел 1+2+3+….превысит 1000
Program summa;
var i, s : integer;
begin
s:=0;
i:=1;
while s < 1000
do
begin s:=s+i;
i:=i+1
end;
writeln (‘сумма равняется ’, s, ‘количество слагаемых = ’, i-1);
readln;
end.
Итерационные циклы с постусловием
Синтаксис:
repeat
оператор; оператор; ... оператор until выражение
Операторы между словами repeat и until повторяются, пока логическое выражение является ложным (False). Как только логическое выражение становится истинным (True), происходит выход из цикла.
Так как выражение оценивается после выполнения операторов, то в любом случае операторы выполнятся хотя бы один раз.
Составим решение той же задачи с помощью цикла с пост условием
Program summa;
var i, s : integer;
begin
s:=0;
i:=1;
repeat
s:=s+i;
i:=i+1
until s>1000;
writeln (‘сумма равняется ’, s, ‘количество слагаемых = ’, i-1);
readln;
end.