Цикл - это замечательное изобретение, которое, в сущности, и делает компьютеры такими ценными. Он позволяет многократно повторить любую часть программы. Цикл не может выполняться вечно, он заканчивается по какому-либо условию. Проверка этого условия может производиться в начале каждого повторяющегося шага, в этом случае цикл называется ПОКА. При проверке условия в конце каждого шага цикл называется ДО. Разновидностью цикла ДО является цикл ПЕРЕСЧЕТ.
10.1.Оператор цикла WHILE (цикл ПОКА).
Формат оператора: WHILE логическое выражение DO;
Оператор будет повторятся пока истинно логическое выражение. Перед каждым повторением оператора значение логического выражения вычисляется заново. Если необходимо повторить несколько операторов, их следует объединить в составной оператор, т.е. заключить в операторные скобки begin ... end. Этот цикл может не выполниться ни разу, если условие при входе в него оказалось ложным. Таким образом, цикл ПОКА содержит условие повторения цикла.
Пример 1. Программа подсчета суммы S первых 1000 членов гармонического ряда 1+1/2+1/3+1/4+...1/N.
Program Summa; Var S:real; N:integer; Begin S:=0;N:=0; While n<1000 do Begin N:=n+1; S:=s+1/n End; Writeln(s); Readln End.
While a>0 do begin q:=a mod 10; b:=b*10+q; a:=a div 10; end;
Этот фрагмент формирует число, обратное заданному числу а, это число в конце будет находится в ячейке b. Для примера рассмотрим короткое число. Пусть а=123 123>0 поэтому все команды будут выполняться: q:=a mod 10; Остаток от деления 123 на 10: q=3 b:=b*10+q; Записываем ее в b b=0*10+3=3 (Вот поэтому сначала b должен быть 0) a:=a div 10; Откидываем от а последний разряд: а=12 (берем целую часть деления 123 на 10) идем в начало цикла 12>0 поэтому все команды будут выполняться: q:=a mod 10; Остаток от деления 12 на 10: q=2 b:=b*10+q; Записываем ее в b b=3*10+2=32 a:=a div 10; Откидываем от а последний разряд: а=1 (берем целую часть деления 12 на 10) идем в начало цикла 1>0 поэтому все команды будут выполняться: q:=a mod 10; Остаток от деления 1 на 10: q=1 b:=b*10+q; Записываем ее в b b=32*10+1=321 a:=a div 10; Откидываем от а последний разряд: а=0 (берем целую часть деления 1 на 10) идем в начало цикла. Условие 0>0 не выполняется, переходим к командам после цикла. А в b находится число, перевернутое по отношению к исходному.
10.1.Оператор цикла WHILE (цикл ПОКА).
Формат оператора:
WHILE логическое выражение DO;
Оператор будет повторятся пока истинно логическое выражение. Перед каждым повторением оператора значение логического выражения вычисляется заново. Если необходимо повторить несколько операторов, их следует объединить в составной оператор, т.е. заключить в операторные скобки begin ... end. Этот цикл может не выполниться ни разу, если условие при входе в него оказалось ложным. Таким образом, цикл ПОКА содержит условие повторения цикла.
Пример 1. Программа подсчета суммы S первых 1000 членов гармонического ряда 1+1/2+1/3+1/4+...1/N.
Program Summa;
Var S:real;
N:integer;
Begin
S:=0;N:=0;
While n<1000 do
Begin
N:=n+1;
S:=s+1/n
End;
Writeln(s);
Readln
End.
begin
q:=a mod 10;
b:=b*10+q;
a:=a div 10;
end;
Этот фрагмент формирует число, обратное заданному числу а, это число в конце будет находится в ячейке b. Для примера рассмотрим короткое число. Пусть а=123
123>0 поэтому все команды будут выполняться:
q:=a mod 10; Остаток от деления 123 на 10: q=3
b:=b*10+q; Записываем ее в b b=0*10+3=3 (Вот поэтому сначала b должен быть 0)
a:=a div 10; Откидываем от а последний разряд: а=12 (берем целую часть деления 123 на 10)
идем в начало цикла
12>0 поэтому все команды будут выполняться:
q:=a mod 10; Остаток от деления 12 на 10: q=2
b:=b*10+q; Записываем ее в b b=3*10+2=32
a:=a div 10; Откидываем от а последний разряд: а=1 (берем целую часть деления 12 на 10)
идем в начало цикла
1>0 поэтому все команды будут выполняться:
q:=a mod 10; Остаток от деления 1 на 10: q=1
b:=b*10+q; Записываем ее в b b=32*10+1=321
a:=a div 10; Откидываем от а последний разряд: а=0 (берем целую часть деления 1 на 10)
идем в начало цикла. Условие 0>0 не выполняется, переходим к командам после цикла. А в b находится число, перевернутое по отношению к исходному.