Цикл с параметром (со счетчиком)

Используется в том случае, если известно число повторений. Тело цикла будет выполняться заданное (заранее известное) число раз: 10, 20,100, n раз – это указывается в условии задачи.

Структура цикла, организованного с помощью этого оператора, имеет вид

For I:= a1 to a2 do begin <тело цикла> end;

Роль счетчика играет переменная i, называемая параметром цикла, она изменяется в заданном диапазоне от начального значения a1 до конечного значения a2 (считает). Шаг изменения параметра цикла равен 1 (слайд 3).

На примере простой задачи, где надо найти сумму 4 произвольных чисел, вводимых с клавиатуры, рассматриваем работу этого оператора. Трассировочная таблица помогает понять, что происходит в памяти компьютера, как последовательно изменяются значения переменных (слайд 4).

№ п/п i x s Проверка условия
         
         
        i<=4
    ?    
... ... ... ... ...

...

S:= 0;

For i:= 1 to 4 do

Begin

Write(‘x=‘);

Readln(x);

s:= s + x;

End;

...

Ученики помогают заполнять таблицу. Акцентирую, что вместо 4 может быть 10, 20,100, n и т.д., но это должно быть известно до начала оператора (до For). Закрепляем последовательность выполнения команд оператора For (слайд 5).

  1. Определяются значения переменных a1 и a2;
  2. Переменной i присваивается значение переменной a1;
  1. Проверяется условие выполнения тела цикла, i a2;
  1. Если это условие истинно, то выполняется тело цикла;
  2. Увеличивается значение переменной i на 1;
  3. Переход к пункту 3.

Тело цикла будет выполнено a2 – a1 + 1 раз.

Отмечаю, что в операторе For значение счетчика может не только увеличиваться, но и уменьшаться. В этом случае оператор выглядит так:

For i:= a2 downto a1 do begin <тело цикла> end;

Условие выполнения тела цикла: i a1, а шаг изменения счетчика – (-1) (слайд 6).

Затем показываю пример оформления программы для задачи “ Написать программу, которая вычисляет сумму положительных из n введенных с клавиатуры целых чисел ” (слайд 7).

Program summa;

Var i, n, x: integer;

Begin

Writeln (‘ввести количество чисел’);

Readln(n);

s:=0;

For i:= 1 to n do

Begin

Writeln(‘ввести число’);

Readln(x);

If x > 0 then s:= s + x;

End;

Writeln (‘сумма >0 =‘, s);

Readln;

End.

Прошу выделить фрагмент цикла в программе и акцентирую внимание на том, что:

· Начальное значение суммы должно быть равно 0.

· Переменная-счетчик должна быть целого типа;

· Не рекомендуется в теле цикла изменять значение переменной-счетчика.

Цикл For удобно использовать также для вывода последовательных значений на экран, например: составить программу, которая выводит на экран степени числа 2 (от 0 до 10). Ребята должны самостоятельно попробовать написать программу в тетради, потом я предлагаю на слайде свой вариант программы (слайд 8).

Program stepen2;

Var i, x: integer;

Begin

Writeln (‘Tabliza’);

Writeln (‘---------------------------’);

x:=1;

For i:= 0 to 10 do

Begin

Writeln (‘2^’, i:2, ‘=‘, x:5);

x:= x*2;

Writeln;

End;

Readln;

End.

Показываю также результат выполнения этой программы.

Для закрепления этого операторы задаю вопросы (слайд 9):

  1. Сколько раз будет выполнено тело цикла? Ответы:
    1. for i:= –5 to 5 do тело цикла;(11)
    2. for i:= 6 to 2 do тело цикла; (0)
    3. for i:= 3 to 3 do тело цикла; (1)
    4. for i:= 3 downto 4 do тело цикла; (0)
    5. for i:= 3 downto 1 do тело цикла; (3)
  2. Какого типа должны быть параметр цикла, его начальное и конечное значения?
  3. Можно ли изменять конечное значение переменной-счетчика в теле цикла?

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: