Объясняю структуру этого оператора:
While условие do
Begin
<тело цикла>
End;
Тело цикла выполняется, пока условие истинно. Чтобы не было зацикливания, переменные, входящие в условие, должны изменяться в теле цикла (слайд 11)
Работу этого оператора рассматриваю на примере программы нахождения количества цифр в введенном с клавиатуры числе (n > 0), использую опять трассировочную таблицу (слайд 12):
n | m | k |
... | ... | ... |
...
Write(‘n=‘);
Readln(n);
m:= n; k:=0;
While m <> o do
Begin
m:= m div 10;
k:= k +1;
End;
Writeln (‘количество цифр в числе‘, n, ‘=‘, k);
Readln;
End.
Цикл с постусловием
Используется также, если неизвестно число повторений.
Структура оператора:
Repeat <тело цикла> until условие;
Тело цикла выполняется пока условие ложно (слайд 13).
Предлагаю решить предыдущую задачу, используя оператор Repeat.
...
Write(‘n=‘);
Readln(n);
m:= n; k:=0;
Repeat
m:= m div 10;
k:= k +1;
Until m = 0;
Writeln (‘количество цифр в числе‘, n, ‘=‘, k);
Readln;
End.
Обращаю внимание на особенности этого оператора:
- Операторные скобки (begin... end) здесь не нужны;
- Тело цикла выполнится хотя бы раз независимо от условия (слайд 14).
Далее класс можно разбить на три группы по вариантам и предложить им решить одну и ту же задачу, например: “Вывод на экран всех 2-значных чисел, равных 7”, используя изученные операторы (слайд 17):
вариант 1 – c использованием цикла For;
вариант 2 – c использованием цикла While;
вариант 3 – c использованием цикла Repeat.
В конце урока подводятся итоги (слайд 18):
- В каком из рассмотренных циклов тело цикла выполнится хотя бы 1 раз независимо от условия?
- В теле какого цикла не рекомендуется изменять значение параметра цикла?
- Условие = True. В каком цикле это сигнал прекращения, и в каком – сигнал продолжения?
- Когда тело цикла заключается в операторные скобки (begin... end;)?
- Какое начальное значение должна иметь переменная, подсчитывающая количество чисел, и как вычисляется количество в теле цикла? Произведение?
Домашнее задание (19):
- Конспект урока.
- Придумать задачи, в которых использовались бы циклы For, While и Repeat.
- Написать программу вывода на экран всех 3-значных чисел, кратных 6 и 4, и заканчивающихся на цифру 8.
- Программу написать тремя способами – с использованием циклов For, While и Repeat.
Для более сильных детей можно задать на дом дополнительно “Алгоритм Евклида” (слайд 15).
Желаю удачи!