Организация циклов в Паскале
Циклический алгоритм – алгоритм, содержащий повторяющиеся действия, - цикл. Цикл состоит из условий и тела цикла.
Условие цикла – логическое выражение, от значения которого зависит принятие решения о следующем выполнении цикла.
Тело цикла – набор действий (команд, операторов), которые выполняются несколько раз.
Параметр цикла – переменная, которая меняется от известного начального до известного конечного значения с известным шагом.
Существует несколько видов циклов: пока,до, для. В Паскале им соответствуют операторы while, repeatиfor.
Цикл пока
| Оператор while
whileусловие do
begin
тело цикла;
end;
|
Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат верен, тело цикла выполняется и снова вычисляется выражение условия. Если результат неверен, происходит выход из цикла и переход к следующему после цикла оператору.
Цикл до
| Оператор repeat
repeat
тело цикла;
untilусловие;
|
Сначала выполняется тело цикла, затем проверяется условие выхода из цикла. Именно поэтому цикл, организованный с помощью оператора repeat, выполнится хотя бы один раз.
Цикл для
| Оператор for
Прямой формат:
for i:=n1 to n do
begin
тело цикла;
end;
Обратный формат:
for i:=n1 downto n do
begin
тело цикла;
end;
|
i – переменная – параметр цикла; n1 и n2 – выражения, определяющие соответственно начальное и конечное значение параметра цикла.
Параметр цикла принимает начальное значение и затем сравнивается с конечным значением. Если конечное значение меньше значения параметра цикла, то происходит выполнение тела цикла, иначе цикл завершается и выполняется следующий за циклом оператор. Шаг изменения параметра цикла равен 1(to)или -1(downto).
Оператор for обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все значения параметра цикла от начального до конечного. Начальное и конечное значения диапазона должны иметь тип, совместимый с типом параметра цикла. При этом допустим любой скалярный тип, кроме вещественного. В теле цикла запрещается явное изменение значения параметра цикла.
Пример: Программа суммирует n-е количество вводимых с клавиатуры чисел.
С – параметр цикла (подсчитывает количество вводимых чисел); n – количество чисел; x – вводимое число; S – сумма чисел.
| program DemoWhile;
var c, n: integer;
x, s: real;
begin
write (‘Введите к-во чисел n=’);
readln (n);
c:=0;
s:=0;
while c<=n do
begin
c:=c+1;
write (c,’-е число:’);
readln (x);
s:=s+x
end;
write (‘Сумма чисел =’,s)
end.
|
| program DemoRepeat;
uses wincrt;
var c, n: integer;
x, s: real;
begin
write (‘Введите к-во чисел n=’);
readln (n);
c:=0;
s:=0;
repeat
c:=c+1;
write (c,’-е число:’);
readln (x);
s:=s+x
until c=n;
write (‘Сумма чисел =’,s)
end.
|
| program DemoFor;
uses wincrt;
var c, n: integer;
x, s: real;
begin
write (‘Введите к-во чисел n=’);
readln (n);
s:=0;
for c:=1 to n do
begin
write (c,’-е число:’);
readln (x);
s:=s+x
end;
write (‘Сумма чисел =’,s)
end.
|