Конспект
урока по информатике
Тема: «Операторы цикла while и repeat –
until. Оператор
цикла с параметром for»
Цели занятия:
Обучающая:
1.
Сформировать
понятие о циклах;
2.
Познакомиться
с циклами WHILE и REPEAT;
3.
Научиться
использовать счётный цикл FOR;
4.
Получить
навыки решения алгоритмов с повторениями.
Развивающая:
1.
Формирование
навыков работы при создании программ, отработать приемы вставки в программу
блоков цикла;
2.
Формирование у
учащихся приемов логического и алгоритмического мышления;
3.
Развитие
познавательного интереса;
4.
Развитие
умения планировать свою деятельность.
Воспитывающая:
1.
Воспитывать
необходимость связывать изучение нового материала с уже известными фактами;
2.
Воспитывать
ответственность за выполняемую работу;
3.
Воспитывать
аккуратность при выполнении вычислений.
Тип урока: комбинированный
Формы учебной работы учащихся: фронтальная, индивидуальная работа
за ПК.
Оборудование: ПК учителя, ПК учеников, тетради, учебник, карточки с заданиями
Ход урока
1. Организационный момент
2. Актуализация опорных знаний
3. Изучение нового материала:
Операторы
цикла while и repeat
Операторы цикла while и repeat используются
тогда, когда заранее не известно общее количество итераций (повторений
вычислений) цикла, а завершение вычислений зависит от некоего условия. Если
условие ставится вначале цикла (на входе), то используется оператор While, если
на выходе – Repeat.
Продемонстрируем сказанное на примере вычисления суммы кубов
всех чисел от 1 до 10. Из кода видно, что пока b ≤ 10 (строка 7), будем
выполнять тело цикла, в котором на каждой итерации к сумме sum прибавляем b3.
При последнем вычислении при b=10 вычислим сумму (строка 9), а ниже увеличим b
на 1: b=11, поэтому следующим шагом будет выход из цикла, поскольку условие
входа b ≤ 10 нарушится.
var
b, sum: integer;
begin
b := 1;
sum := 0; // начальная сумма
while b <= 10 do
begin
sum := sum + b*b*b;
inc(b)
end;
writeln('sum = ', sum); // выводим результат
readln
end.
Нужно избегать! случая, когда условие входа в цикл всегда истинно, ибо
в тогда программа зациклится. Такая ситуация называется "бесконечным
циклом". Приведем пример.
begin
while 1 < 100 do
writeln('Hello!')
end.
Данная
программа будет выводить приветствие "Hello!" бесконечно, то есть до
тех пор, пока вы её не остановите. Происходит это потому, что условие 1 <
100 всегда истинно.
Посмотрите
ещё пример с гармоническим рядом или
другие программы из раздела While задачника Абрамяна.
Задача 1. Выведите
наименьший делитель числа x, отличный от 1
var
x, d: integer;
begin
write('Введите x --> ');
readln(x);
d := 2; { <- минимальный делитель отличный от 1 }
while (x mod d <> 0) do inc(d);
writeln('d = ', d);
readln
end.
Задача 2. Напечатать минимальное число,
большее 200, которое нацело делится на 17
var
n: integer;
begin
n := 201; { <- минимальное число большее 200 }
while (n mod 17 <> 0) do inc(n);
writeln('Ответ: ', n);
readln
end.
Оператор repeat - until
Ещё
одной особенностью оператора repeat - until является то, что по крайней мере
один раз оператор в теле цикла выполнится, поскольку условие выхода проверяется
в конце. Эта особенность приводит к тому, что любой оператор с предусловием
while легко может быть преобразован в оператор с послеусловием repeat, а вот далеко
не каждый оператор repeat легко записывается с помощью while.
Задача 1. Вычислить корень
квадратный из введенного с клавиатуры числа.
Запустите
программу и попробуйте ввести отрицательное число: каждый раз вас будет
возвращать в начало цикла, поскольку выйти из цикла можно, если ввести
неотрицательное число x: x >= 0
.
var
x: integer;
begin
repeat
readln(x)
until x >= 0; { <-- выходим, если x>=0 }
writeln('Квадратный корень: ', sqrt(x):0:4);
readln
end.
Задача
2. Вводить с клавиатуры числа до тех пор, пока их сумма не превысит заданное
наперед число.
Как видим в строке 11, если сумма
sum превысит число М, то выходим из цикла и выводим результат:
var
x, M, sum: real;
begin
write('Введите контрольное число --> ');
readln(M);
sum := 0; { <- начальное значение суммы }
repeat
readln(x); { <- вводим x }
sum := sum + x { <- к сумме прибавляем x }
until sum > M; { <== выходим, если сумма превысит M }
writeln('Результат: ', sum);
readln
end.
Оператор for to do —
цикл со счётчиком
Особенность данного цикла заключается в том, что использовать
его нужно когда заранее известно количество повторений команд.
Посмотрите на рисунок ниже. Там представлена блок схема for
(блок-схема цикла с параметром) и его запись на языке программирования Паскаль.

Параметр это целая величина, которая
обозначается любой латинской буквой. Чаще всего используют символ — i.
Начальные и конечные значения параметра тоже целые числа. Счетчик цикла может
работать в двух направлениях: увеличение или уменьшение значения параметра.
Как работает цикл с параметром ?
Разберемся, как работает for в паскале.
Выполнение начинается с получения переменной i начального
значения а. Затем проверяется это значение с
конечным значением n. Выполнение операторов цикла
происходит в случае, когда i меньше или равно n (при
положительном шаге счетчика) или i больше или
равно n (при отрицательном шаге счетчика).
Рассмотрим работу цикла на примерах:
Задание 1. Напишите программу,
которая выводит на экран 10 строк следующего содержания: «**++==++**»
Решение:
program for1; { название
программы }
var i:integer; { описание
переменных }
begin
{
начало программы }
for i:=1 to 10 do { цикл выполняется
10 раз }
writeln('**++==++**'); {вывод строки
символов экран }
end.
{
конец программы }
Выполнить
самостоятельно
Задание
2. Напишите программу, которая выводит значения функции
y=kx+b на интервале [2,8] с шагом 1.
Решение:
program for2; { название
программы }
var x,a,n:integer; { x- параметр
цикла, a,n - интервал}
k,b:real;
{
коэффициенты функции}
begin
{
начало программы }
write('Введите значение
k = ');readln(k);
write('Введите значение
b = ');readln(b);
write('Введите значение
начала интервала = ');readln(a);
write('Введите значение
конца интервала = ');readln(n);
for x:=a to n do { цикл с параметром }
writeln('x=',x,' y=',k*x+b); {вывод значений
аргумента и функции }
end.
{
конец программы }
4. Подведение
итогов урока, выставление оценок
5. Домашнее
задание
Читать
§____________с.________________. Выполнить задание__________с.____________
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.