СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Программирование циклических алгоритмов. Циклы while do, repeat until, for

Категория: Информатика

Нажмите, чтобы узнать подробности

Программирование циклических алгоритмов. Циклы while do, repeat until, for

Просмотр содержимого документа
«Программирование циклических алгоритмов. Циклы while do, repeat until, for»

Урок № 26

Дата: 09.04.2021

Класс: 10

Тема: «Операторы цикла 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

Посмотрите ещё пример с гармоническим рядом или другие программы из раздела While задачника Абрамяна.

Задача 1. Выведите наименьший делитель числа x, отличный от 1

var

x, d: integer;

begin

write('Введите x -- ');

readln(x);

d := 2; {

while (x mod d 0) do inc(d);

writeln('d = ', d);

readln

end.

Задача 2. Напечатать минимальное число, большее 200, которое нацело делится на 17

var

n: integer;

begin

n := 201; {

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; { =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 {

until sum 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. { конец программы }

  1. Подведение итогов урока, выставление оценок

  2. Домашнее задание

изучить §____________с.________________. Выполнить задание__________с.____________


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!