Оператор цикла.

Пусть нам надо десять раз выполнить оператор writeln. Можно конечно написать так:

writeln (‘делай 1’);
writeln (‘
делай 2’);
writeln (‘
делай 3’);
writeln (‘
делай 4’);
writeln (‘
делай 5’);
writeln (‘
делай 6’);
writeln (‘
делай 7’);
writeln (‘
делай 8’);
writeln (‘
делай 9’);
writeln (‘
делай 10’);

Хорошо если надо повторить оператор 10 раз, а если надо повторить 10 000 раз, что же так и будем повторять операторы? Конечно же, нет. Для таких случаев имеется оператор повторений, который называется оператор цикла.

Оператор цикла содержит служебные слова for (для), to (до, к), do (делай, выполняй). Для работы оператора нам нужна вспомогательная переменная i, которая будет выполнять роль счетчика. (Я назвал ее i, Вы можете назвать ее по-другому, но переменная цикла нужна обязательно). В операторе задается начальное значение переменной цикла и ее конечное значение, таким образом определяется число повторений цикла.

Пример использования оператора цикла.

Если нам надо, чтобы в цикле повторялся не один оператор, а несколько операторов, тогда оператор будет записан в виде:

for i:=1 to 10 do begin
<
оператор 1 >
< оператор 2 >
……
<
оператор n >
end
;

То есть, вместо единственного оператора, мы подставляем блок операторов заключенный в служебные слова begin … end, тогда операторы с 1-го по n-ый выполнятся десять раз.

Оператор цикла выполняется следующим образом:

Переменную цикла можно (и нужно) использовать, но использовать ее можно только в правой стороне выражения. Ее нельзя изменять самому, т.к. это нарушает работу цикла.

Пример неверной программы.

for i := 0 to 10 do begin
< оператор 1 >
i := 5; // неверный оператор нарушающий работу цикла
……
< оператор n >
end;

Параметры начала и конца цикла могут быть не только постоянными числами, они могут быть выражениями или перемеными.

for i:=a+b to M do begin // a+b выражение, M переменная
< оператор 1 >
……
< оператор n >
end;

Задача: вычислить сумму последовательных натуральных чисел от 1 до 25

Пример вычисления суммы.

S:=0; // предварительное обнуление суммы
for i := 1 to 25 do S:=S+i; // добавление очередного члена внутри цикла
writeln (S); // этот оператор не относится к циклу, после выполнения
// цикла он выполнится один раз и напечатает сумму

Задача: вычислить сумму квадратов натуральных чисел от 1 до N

Пример вычисления суммы квадратов.

readln(N); // вводим конечное значение подсчета суммы квадратов
S:=0;
for i := 1 to N do S:=S+i*i;
writeln (S);

Иногда требуется выполнять цикл не в порядке увеличения переменной цикла, а в сторону уменьшения, т.е. когда Конечное значение < Начальное значение.

В этом случае вместо служебного TO в операторе используется служебное слово DOWNTO (вниз) :

for i := 1 downto -20 do < оператор >;

 

Оператор Continue.

Этот оператор обеспечивает досрочное завершение очередного прохода цикла, причем сам цикл продолжает выполняться.

Рассмотрим простой пример с оператором Continue.

for i:=1 to 3 do begin
< оператор 1 >
if i=2 then CONTINUE;
< оператор 2 >
end;

Операторы будут выполняться в следующей последовательности:

При i = 2 второй оператор выполняться не будет, но выполнение цикла продолжится до конца.

Оператор Break.

Этот оператор обеспечивает досрочное завершение цикла, причем сам цикл больше не выполняется, а управление передается оператору, следующему за циклом.

Рассмотрим тот же пример, но теперь с оператором Break.

for i := 1 to 3 do begin
< оператор 1 >
if i = 2 then BREAK;
< оператор 2 >
end;

Операторы будут выполняться в следующей последовательности:

При i = 2 второй оператор выполняться не будет. Третий раз цикл выполняться не будет.

Задачи.

  1. Вычислить значения квадратов чисел от 0 до 1 с шагом 0.1 и вывести

результаты на экран.

2. Вычислить значения кубов чисел от 0 до 1 с шагом 0.1 и вывести результаты на экран.

3. Найти сумму натуральных чисел от 1 до 10.

4. Найти сумму значений функции 1/х х меняется от 1 до 10 с шагом 1.

5. Найти сумму значений функции 1/х х меняется от 1 до 10 с шагом 0.1.

6. Дано натуральное n. Написать программу вычисления значений суммы:

7. Дано натуральное n. Написать программу вычисления значений суммы:

 

ПРЕДЫДУЩАЯ ГЛАВА |  ГЛАВНАЯ СТРАНИЦА |  ТЕКУЩАЯ СТРАНИЦА |  СЛЕДУЮЩАЯ ГЛАВА;

 

Hosted by uCoz