Тема: «Оператор цикла с предусловием»

Класс: 9 академический

Цель: познакомить учащихся с форматом записи оператора цикла с предусловием на примере разбора задачи нахождения НОД с использованием алгоритма Евклида.

План урока

1.  Орг. момент.

Приветствие.

2.  Постановка целей и задач урока

- Мы продолжаем изучение темы «Циклы».

- Несколько занятий назад мы начали изучать тему «Циклы». Что же это такое?

- Мы записали 3 вида циклов. Назовите их?

- Какой из них мы уже использовали при решении задач?

- Сегодня на уроке нам предстоит познакомиться еще с одним циклом – циклом с предусловием. Запишите тему урока себе в тетрадь.

3. Актуализация базовых знаний.

Начнем, пожалуй, с повторения.

а)Задание: установить соответствие (приложение1)

У вас перед глазами лежат карточки. Эти карточки помогут нам повторить материал.

Ваша задача установить соответствие между терминами и их определениями. Вы выполняете это у себя на столах. А один ученик пойдет к доске. …. Проверка выполнения задания.

б)Задание: найти ошибки (приложение 2)

Посмотрите на экран и укажите ошибки в записи программы.

в)Задание: правильно ли составлена программа

Повторить структуру программы.

г) Задание: определить значение переменной S после выполнения следующих операторов.

3.  Объяснение нового материала.

- Задача, которую мы с вами будем решать, известна вам из 6 класса. Нам нужно найти НОД двух чисел А и В.

- Что такое НОД? (НОД – наибольшее натуральное число, на которое делятся без остатка числа а и в).

НЕ нашли? Не то? Что вы ищете?

- Давайте вспомним, как вы находили НОД?

Чертили вертикальную черту и делили данные числа. Например числа 12 и 16.

- Найдем их делители (слайд на экране).

- После этого мы должны выделить общие делители и найти среди них наибольший.

- Если нам этот алгоритм переводить на язык программирования, то какие задачи нужно решить?

- Каждая задача по своему сложная.

- Поэтому для составления программ мы будем использовать алгоритм

Евклида, который бы сформулирован в 3 веке до н. э. древнегреческим математиком Евклидом. (Портрет Евклида)

- Суть этого метода заключается в следующем: вычитай из большего числа меньшее пока числа не сравняются, заменяя большее разностью. Как только это произойдет НОД найден. (Пример на доске – числа 48 и 18)

- Первый вопрос – равны ли эти числа? Нет не равны, следовательно мы из большего вычитаем меньшее 48-18 = 30.30 не равно 18, значит 30-18= 12, 18-12=6, 12-6=6. То есть мы выполняем эти действия до тех пор пока числа не сравняются. Следовательно НОД(48,18)=6

- Мы видим, что эти действия повторяются?

- Следовательно, какими операторами мы можем воспользоваться при решении этой задачи? (Циклом)

- Что мы должны знать, чтобы воспользоваться циклической конструкцией For…? (Количество операций)

- Мы знаем сколько будем выполнять эти повторяющиеся действия?

Нет, следовательно, нам нужна новая циклическая конструкция – цикл «пока». Давайте посмотрим на графическое представление цикла с предусловием.

- Первое, что мы видим - это условие. Условие может дать два варианта. Да или нет.

Если условие выполняется, то делается тело цикла – последовательность действий, которые нужно повторять. Далее мы движемся на проверку условия, если условие верно, то мы до каких пор выполняем тело цикла? (Пока условие не станет ложным). Эта циклическая конструкция поможет решить задачу.

Как же на языке Паскаль записывается эта конструкция.

Пока на английском while, делай - do. (на доске магнитом прикрепляется конструкция цикла).

- Сколько операторов можно было выполнять в теле цикла For? Если больше одного, то мы должны использовать операторные скобки. А сейчас попытаемся вместе, я на доске, а вы в опорных конспектах, заполнить блок-схему решения нашей задачи. Итак, с чего начинаем? (Условие) Какой же вопрос нужно задать? (равны ли эти числа?) Сколько путей выхода из этого условия? Если числа равны, что это означает? (НОД найдено). Если не равны, необходимо выяснить, какое из них больше. Как это сделать? (С помощью условия) Какой же вопрос зададим? (а>b ). И опять два варианта: если да, то что нужно сделать? (а:=а-в). Если нет, то (в:=в-а). Что после этого я должна сделать? (Проверить условие а=в).

Где же здесь условие цикла пока? Где тело цикла? Сколько операторов выполняется в теле цикла?

4. Практическая работа.

Возьмите тетради и листочки. Сядьте за компьютеры по одному. Составьте программу по данной блок-схеме и проверить её для тех пар чисел, которые у вас указаны.

5. Закрепление.

6. Подведение итогов.

- Подведем итог. Какие ответы у вас получились?

Итак, мы с вами сегодня познакомились с алгоритмом Евклида. Для нахождения НОД, чем мы воспользовались. А почему мы не воспользовались циклом For? Что будет, если условие будет неверным с самого начала?

- При решении задач с использованием цикла ПОКА необходимо учесть, что в теле цикла обязательно должен присутствовать механизм, обеспечивающий выход из цикла. Если не предусмотреть наличие такого механизма, возникнет бесконечный цикл (зацикливание), который можно прервать только аварийным выходом из всей программы.

7.  Постановка домашнего задания.

Приложение 1

Информатика

- наука, предметом изучения которой являются информация и информационные процессы; в которой осуществляются исследования и изобретение новых средств работы с информацией.

Алгоритм

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

Программа

- средство записи алгоритма.

Паскаль

- Н. Вирт (1968 – 1970 годы)

Begin

- начало программы.

Begin … end

- операторные скобки

Write

- процедура вывода

Read

- процедура ввода

:=

- оператор присваивания

if … then …else

- условный оператор

for i:=a to b do …

- оператор цикла с параметром

Цикл

- многократно повторяющееся действие.


Приложение 2

Найти ошибки

1)  program a1;

var a: integer;

b: real;

begin

a: = 100;

b:= 20.5;

writeln (a, b);

a:= a+b/3.5;

writeln (a);

end.

2) program a2;

var c: integer;

begin

c = 100;

writeln (c)

end.

3) program a3;

var c: integer;

begin

c = 100;

writeln (c)

end.

Правильно ли составлена программа?

begin a: integer;

program a1;

var b: integer;

b:= 21

writeln (b);

b:=b/3;

writeln (b);

end.

Какие из приведенных операторов правильные и почему?

For i:=12 to 15 do s:=s+I;

For a:=30 to 20 do if a mod 3 =0 then d:=d+I;

Раздаточный материал

Цикл с предусловием.

Задача. Алгоритм Евклида. Нахождение НОД чисел А и В.

Найти: НОД (48; 36)

НОД (35; 120)

Домашнее задание:

1)  Дед Мороз готовит для новогодней елки одинаковые подарки. Во все подарки он разложил 123 апельсина и 82 яблока. Сколько ребят получат подарки? Сколько апельсинов и сколько яблок было в каждом подарке?

2)  Для поездки за город работникам фирмы было выделено несколько автобусов с одинаковым числом мест в каждом. В лес поехали 424 человека, а на озеро 477. Все мета в автобусе были заняты и ни одного человека не осталось без места. Сколько автобусов было выделено и сколько пассажиров было в каждом автобусе?