Цикл с параметром «FOR…DO»
Циклы применяются, когда нужно выполнить одни и те же команды несколько раз.
Рассмотрим общий вид цикла с параметром:
For x:=a <to, downto> b do [оператор][;]
[Begin]
[тело цикла];
[End];
«to» применяется при увеличении аргумента a на единицу, а «downto» при уменьшении на единицу. Данный оператор читается следующим образом: управляющая переменная (x) принимает значения от (a) и изменяется с шагом (1 или -1) до конечного значения (b), при этом пока (x) не больше, чем (b), то выполняются команды, находящиеся в теле цикла.
Аналогично как и в операторе условия, так и в циклах (с параметром, с предусловием, с постусловием) бывают простые и блочные формы. Напомню, что простой формой называется запись оператора (цикла, условия и тд.), в теле которого присутствует только одна команда или один оператор, в блочной форме их может быть несколько.
Структурная схема цикла:
.
Существуют следующие правила:
1. Управляющая переменная (x) только целого типа.
2. Если a>b при шаге +1, то оператор не выполняется (аналогично для шага -1 (a<b)).
3. В теле цикла нельзя изменять основные параметры (x, a, b)
4. Допускается блочная форма оператора (тогда, когда нужно выполнить несколько команд в теле цикла).
Рассмотрим следующую задачу: вывести на экран все числа от 1 и до 10 включительно.
Решим ее без применения цикла, то есть с помощью операторов условия и безусловного перехода.
program num1;
var x:integer;
label 1;
begin
x:=1;
1: if x<=10 then begin
write (x:2);
x:=x+1;
goto 1
end
end.
Теперь решим задачу при помощи цикла:
program num2; var x:integer; begin for x:=1 to 10 do write(x:2) end.
Как видно решение получилось в два раза короче, и при этом мы с Вами написали программу в хорошем тоне.