Назначение, форма записи и правила выполнения команд повторения (цикл «пока» цикл «для»)
Команда повторения «пока» предназначена для многократного повторения некоторой последовательности действий, когда число повторений заранее не известно.
Команда повторения «для» предназначена для многократного повторения некоторой последовательности действий для нескольких последовательных значений целочисленного параметра. Эта команда обычно используется, когда число повторений известно заранее, и особенно удобна при работе с массивами и литерными переменными. 1.В общем виде цикл «пока» записывается так:
нц пока <условие> while <условие> do
<тело цикла> begin
кц <тело цикла>
end;
метка1 IF <отрицание условия> THEN метка2
<тело цикла>
GOTO метка1 метка2 ...
При его выполнении ЭВМ циклически выполняет следующие действия: проверяет <условие>,
если оно соблюдается, то выполняет <тело цикла>,
снова проверяет условие,
если оно соблюдается, то снова выполняет <тело цикла>,
и т. д. до тех пор, пока не обнаружит, что условие не соблюдается.
В этот момент выполнение цикла завершается и начинают выполняться команды, следующие за циклом.
Если <условие> не соблюдается с самого начала, то <тело цикла> не будет выполнено ни разу. Если <условие> все время будет соблюдаться, то цикл будет выполняться до бесконечности (эта ситуация называется зацикливание).
Пример 1.
нц пока В-А>2*е
С:=(А+В)/2
если F(A)*F(C)<=0
то В:=С
иначе A:=C
все
кц
50 IF B-A<=2*e THEN 120
while В-А>2*е do
begin
С:=(А+В)/2;
if F(A)*F(C)<=0
then B:=C
else A:=C;
end;
60 С=(А+В)/2
70 IF F(A)*F(C) > 0 THEN 100
80 В = С
90 GOTO 110
100 А = С
110 GOTO 50
120 . . .
2. В общем виде цикл «для» записывается так:
нц для i от i1 до i2
for i=i1 to i2 do
<тело цикла>
begin
кц <тело цикла>
end;
10 FOR I%=I1% TO 12%
20 <тело цикла>
30 NEXT I%
При выполнении цикла «для» <тело цикла> последовательно выполняется для i=il, i = i2, ... i = in. Переменная i называется параметром цикла. Внутри тела цикла запрещаются любые изменения параметра цикла, а также изменения переменных il и i2.
Если il = i2 , то <тело цикла> выполнится один раз, если же il>i2, то <тело цикла> не будет выполнено ни разу.
Пример 2.
нц для i от 1 до 10 for i:=l to 10 do
I ввод A[i] begin read(A[i])
кц end;
30 FOR i% = 1 TO 10
40 INPUT A%(i%)
50 NEXT i%
Замечание. В то время как в КуМире и Бейсике разделение программы на строки существенно, в Паскале разрешается разбивать программу произвольным образом. Например, в примере 2 можно было бы написать: begin
read(А[i])
end;
|