Урок "Сравнение типов циклов"

Разделы: Информатика


Тема урока: «Сравнение типов циклов».

Тип урока: обобщающий урок по теме «Циклы».

Цели урока:

  • Образовательная: систематизация и обобщение теоретических знаний учащихся о циклических алгоритмах, проверка глубины усвоения материала, отработка практических навыков.
  • Развивающая: развитие логического и алгоритмического мышления учащихся, стимулирование познавательного интереса учащихся к данной теме и предмету в целом.
  • Воспитательная: умение слушать друг друга, тренировка навыков культуры работы с техникой, культура речи.

Оборудование: мультимедийный проектор, ПК учителя, ПК учеников, объединенные в локальную сеть.

Программное обеспечение: Microsoft PowerPoint, FreePascal.

Дидактический материал: презентация по теме на компьютере учителя (см. Приложение 1). Презентация с заданием (слайд №2 из презентации по теме), доступная каждому ученику по сети (или карточки с заданием на столах учеников).

ХОД УРОКА

I. Организационный момент (1 мин.)

Приветствие. Проверка присутствующих. Сообщение темы урока учащимся.

II. Актуализация знаний (повторение основных понятий по теме и проверка знаний) (8 мин.)

Вопросы к учащимся:

1. Какие алгоритмические структуры вы знаете?
2. Что такое цикл?
3. Что такое тело цикла?
4. Какие типы циклов реализуются в Паскале?
5. Каков формат оператора цикла со счетчиком?
6. Каков формат оператора цикла с предусловием?
7. Каков формат оператора цикла с постусловием?
8. Как работает цикл с предусловием?
9. Как работает цикл с постусловием?
10. Когда вычисляются начальное и конечное значение счетчика?

Учащиеся должны выполнить задание «Свойства типов циклов» (слайд №2) – соединить линиями разных цветов название типа цикла и его свойства.

Задание можно выполнять как за компьютерами, так и распечатать карточки для каждого ученика. Одного ученика можно вызвать к доске, где он выполняет задание с помощью маркеров разных цветов, а если доска интерактивная, то с помощью указателя «Карандаш» в режиме показа слайдов.

Верно выполненное задание выглядит следующим образом:

III. Объяснение учебного материала (теория) (15 мин.)

На примере простых задач «Банк», «Пароль» и «Евклид» учитель предлагает учащимся сравнить готовые решения этих задач с помощью трех типов циклов.

Задача «Банк» (слайды №3 и 4).

Условие: Посчитать итоговую сумму денег на банковском вкладе за N лет при P процентах годовых.

Решения, предложенные учителем:

Program bank1;
CONST P=15;  N=5;
VAR   S:real;  i: integer;
BEGIN
Writeln (‘Summa vklada: ’);
Readln (S);
For i:=1 to N do
S:=S+S*P/100;
Writeln (‘itogovaja summa’, S);
END.
Program bank2;
CONST P=15;  N=5;
VAR   S:real;  i: integer;
BEGIN
Writeln (‘Summa vklada: ’);
Readln (S);
i:=1;
While  i<=N do
begin
S:=S+S*P/100;
i:=i+1;
end;
Writeln (‘itogovaja summa’, S);
END.
Program bank3;
CONST P=15;  N=5;
VAR   S:real;  i: integer;
BEGIN
Writeln (‘Summa vklada: ’);
Readln (S);
i:=1;
Repeat
S:=S+S*P/100;
i:=i+1;
Until  i>N;
Writeln (‘itogovaja summa’, S);
END.

Эту задачу можно решить с помощью трех типов циклов. Но используя цикл с предусловием или с постусловием, переменная, определяющая условие, работает как счетчик (наращивается на 1). Поэтому решение этой задачи с помощью цикла со счетчиком является наиболее коротким.

Задача «Пароль» (слайд №5).

Условие: Угадать пароль P.

Решения, предложенные учителем:

Program parol2;
CONST   P=12345;
VAR  password: integer;
BEGIN
password:=0;
While password<>P do
begin
Writeln (‘Введите пароль’);
Readln (password);
end;
writeln (‘пароль угадан!’);
END.
Program parol3;
CONST   P=12345;
VAR  password: integer;
BEGIN
Repeat
Writeln (‘Введите пароль’);
Readln (password);
Until password=P;
writeln (‘пароль угадан!’);
END.

Эту задачу нельзя решить с помощью цикла со счетчиком, т.к. не ограничено количество попыток угадывания пароля. Применение цикла с постусловием дает более короткий код по сравнению с предусловием, т.к. нет необходимости присваивать начальное значение для еще не введенного пароля.

Задача «Евклид» (алгоритм нахождения наибольшего общего делителя) (слайд №6).

Условие: Если n=m, то НОД (n, m) = n = m
Если n>m, то НОД (n, m) = НОД (n-m, m)
Если n<m, то НОД (n, m) = НОД (n, m-n)

Решения, предложенные учителем:

Program evklid2;
VAR  n,m : integer;
BEGIN
Readln (n, m);
While n<>m do
If n>m then n:=n-m
else m:=m-n;
Writeln (‘НОД = ’, n)
END.
Program evklid3;
VAR  n,m : integer;
BEGIN
Readln (n, m);
If n<>m then
Repeat
If n>m then n:=n-m
else m:=m-n;
Until  n=m;
Writeln (‘НОД = ’, n)
END.

Эту задачу нельзя решить с помощью цикла со счетчиком. Применение цикла с постусловием требует изначально сравнения введенных чисел, таким образом цикл вложен в условный оператор. Решение этой задачи с помощью цикла с предусловием кажется наиболее красивым.

IV. Закрепление учебного материала (практика) (15 мин.)

Учащиеся должны написать программу, высчитывающую значение числа Пи по формуле Валлиса (слайд №7), с помощью любого из трех типов циклов на выбор ученика.

Ждем от учеников вопросов: сколько членов ряда надо брать или с какой точностью высчитывать значение?

V. Домашнее задание (1 мин.)

Написать три программы (используя три типа цикла), высчитывающие значение числа Пи по формуле Грегори (слайд №7):

VI. Подведение итогов урока (5 мин.)

Вопросы к учащимся:

1. В каких случаях целесообразно использовать тот или иной тип цикла?

Желаемый ответ:

– Использовать цикл for можно только в том случае, когда точно знаем, сколько раз должно быть выполнено тело цикла.
– Использовать цикл repeat, если необходимо, чтобы тело цикла выполнялось, по крайней мере, один раз.
– Использовать цикл while, если необходимо, чтобы проверка условия была произведена прежде, чем будет выполняться тело цикла.

2. Какой тип цикла наиболее универсален?

Желаемый ответ:

– Цикл с предусловием наиболее универсален, т.к. с помощью цикла while можно реализовать любой циклический алгоритм. [1, 2]

Литература:

1. Информатика и ИКТ. Базовый курс: Учебник для 9 класса. / И.Г.Семакин, Л.А.Залогова, С.В.Русаков, Л.В.Шестакова – М.: БИНОМ. Лаборатория знаний, 2007.
2. Информатика и ИКТ: Задачник-практикум / Под ред. И.Г. Семакина, Е.К. Хеннера. – М.: БИНОМ. Лаборатория знаний.