Разработка урока информатики в 9 классе по теме Программирование циклов с предусловием и с постусловием на языке Паскаль


Урок по информатике в 9 классе Тема: Программирование циклов с предусловием и с постусловием на языке Паскаль.
Цели урока:
Научиться программировать циклы с предусловием и с постусловием на языке Паскаль.
Воспитание информационной культуры учащихся, внимательности, аккуратности, дисциплинированности, усидчивости.
Развитие алгоритмического мышления, познавательных интересов, навыков работы на компьютере.
Оборудование: ПК учителя и учеников, мультимедийный проектор, интерактивная доска.
Программное обеспечение: среда программирования Паскаль.
Тип урока: изучения нового материала.
Ход урока:
Орг. момент (2 мин).
- Приветствие, проверка отсутствующих.- Сообщение темы и целей урока.
Актуализация знаний (10 мин).
-Что такое цикл? ( Ответ: последовательность операторов, которая выполняется неоднократно.)
-Что такое тело цикла? (Ответ: оператор или группа повторяющихся операторов, которые записываются после do).
- Чем характерен цикл с параметром? (Ответ: заранее известным числом повторений).- Написать на доске общий вид убывающего и возрастающего цикла с параметром (2 учащихся работают у доски).
Ответ:
For <параметр> := <начальное значение> to <конечное значение> do <тело цикла>;
For <параметр> := <начальное значение> downto <конечное значение> do <тело цикла>;- Разобрать у доски домашнее задание:
Задача: Найти все делители числа n.
Пример выполнения задания:
program z1;
uses crt;
var n, i: integer;
k: real;
beginread (n);
for i:=1 to n do
if n mod I = 0 then writeln (i);
end.
- Работа по карточкам на местах - для 4 учащихся (см. приложение).
Объяснение нового материала (15 мин).
Помимо цикла с параметром в языке Паскаль существуют еще две циклические конструкции: цикл с предусловием и цикл с постусловием, реализуемые специальными операторами.Рассмотрим данные конструкции в сравнительной характеристике. Для этого построим следующую таблицу (высветить в виде слайда презентации):
Цикл с предусловием «Пока» Цикл с постусловием «До»
Характеристика:
Является циклом с заранее не известным количеством повторений. Тело цикла выполняется после проверки условия выхода из цикла и только в том случае, когда условие истинно, иначе цикл заканчивает свою работу. Таким образом, может ни разу не выполниться. Является циклом с заранее не известным количеством повторений. Тело цикла выполняется до проверки условия выхода из цикла, в том случае, если условие ложно, иначе цикл заканчивает свою работу. Хотя бы один раз выполниться.
Параметр цикла:
Начальное значение задается вручную. Изменения параметра тоже происходят вручную на задаваемый программистом шаг. Причем действия над параметром цикла (счетчик выполнения) может совпадать с телом цикла. В отличие от цикла «Для» параметр может быть и вещественным числом.
Условие выхода:
Обязательно должно быть истинным. Является полностью противоположным условию выхода цикла «До». Обязательно должно быть ложным. Является полностью противоположным условию выхода цикла «Пока».
Блок – схема:
1567815295275119126033655Начало
00Начало

981710196215Ввод данных
00Ввод данных

156781520129500
19685062865002863851845311Изменение параметра
00Изменение параметра
2219960768985-
00-
676910768985+
0+
235839010020302006602407285020066062611006915152202180701040162115571056510115552863851283335Тело
цикла
00Тело
цикла
72453510071100022199601007110002358390162115518865851873885Конец
00Конец
17818101226185Вывод результатов
00Вывод результатов
895985625475Условие выхода
00Условие выхода
1548765401955101981073660Установка нач.значений0Установка нач.значений 1415415294640101854033655Начало
00Начало

837565177165Ввод данных
00Ввод данных

141541520066000
83756573660Установка нач.значений0Установка нач.значений
39941530607003994153035300140589078740
83756537465Тело
цикла
0Тело
цикла

894715257176Изменение параметра
0Изменение параметра
139636532385
1405890261620
1990090229870+
+
456565229870-
-
780415163195Условие выхода
00Условие выхода

23583901581151967865153035003962401530350
172339062864Вывод результатов
00Вывод результатов

2338070113665
187579013970Конец
00Конец

Реализация на языке Паскаль:
<установка нач. значений>;While <условие выхода> do <тело цикла>; <установка нач. значений>;Repeat <тело цикла>Until <условие выхода>;
Операторные скобки:
Если тело цикла состоит более чем из двух операторов языка Паскаль, включая строку изменения параметра, то они заключаются в операторные скобки Особенностью данного цикла является то, что операторные скобки для заключения действий, выполняемых в цикле, не ставятся, при этом надо учесть, что перед Until «;» не ставится.
Пример: Из промежутка [a, b], где а<b, вывести на экран только четные числа.
Program pr1;Uses crt;Label k;Var a,b, i: integer; Begin Clrscr;K:Writeln( ‘Введите границы промежутка’);Readln(a,b);If a>b then goto k;If a mod 2 = 0 then I:=a else i:=a+1;While i<=b do beginWrite (i:5);I:=i+2End;Readln;End. Program pr2;Uses crt;Label k;Var a,b, i: integer; Begin Clrscr;K:Writeln( ‘Введите границы промежутка’);Readln(a,b);If a>b then goto k;If a mod 2 = 0 then I:=a else i:=a+1;repeatWrite (i:5);I:=i+2Until i>b;Readln;End.
Закрепление материала (10 мин).
- У доски двое учащихся решают задачу двумя способами.
Задача: Вычислить сумму натурального ряда чисел от 1 до n.
Пример выполнения задания:
Program SummaPoka;
Uses Crt;
Var i, n : integer;
x, S : real;
Begin ClrScr;
write ('Сколько чисел для сложения? ');
readln (n);
S:=0;
i:=1;
while i<=n do
begin write ('Введите ',i,'-е число ');
readln (x);
S:=S+x;
i:=i+1;
end;
write ('Сумма введенных чисел равна ',s:5:2);
readln;
End.
Program SummaDo;
Uses Crt;
Var i, n : integer;
x, S : real;
Begin ClrScr;
write ('Сколько чисел для сложения? ');
readln (n);
S:=0;
i:=1;
repeat write ('Введите ',i,'-е число ');
readln (x);
S:=S+x;
i:=i+1;
until i>n;
write ('Сумма введенных чисел равна ',S:5:2);
readln;
End.
-Остальные ученики самостоятельно решают задачу и программируют решение в среде Паскаль на компьютере. Учитель учитывает, если задача решена верно и вперед, чем на доске.
Подведение итогов (3 мин).
- Запись домашнего задания:
1.Учить конспект;
2.Составить программу для решения задачи по нахождению НОД (а, b), используя цикл с предусловием и постусловием.
- Выставление оценок за работу на уроке.
Приложение.
Карточки по теме «Цикл с параметром»
К-1
-5143560325Определите значение целочисленной переменной S после выполнения операторов:

S:=128;
for i:=1 to 4 do
S:=S div 2;
Writeln (s);
Постройте блок-схему к этой части программы.
00Определите значение целочисленной переменной S после выполнения операторов:

S:=128;
for i:=1 to 4 do
S:=S div 2;
Writeln (s);
Постройте блок-схему к этой части программы.

Ответ: S=8
К-2
-5143594615Определите значение целочисленной переменной S после выполнения операторов:

S:=128;
for i:=1 to 3 do begin
S:=S+i*(i+1)*a;
a:=a+2;
end;
Writeln (s);
Постройте блок-схему к этой части программы.
00Определите значение целочисленной переменной S после выполнения операторов:

S:=128;
for i:=1 to 3 do begin
S:=S+i*(i+1)*a;
a:=a+2;
end;
Writeln (s);
Постройте блок-схему к этой части программы.

Ответ: S=188
К-3
-5143541275Вычисление n! (n! = 1 * 2 * 3 * … * n)
Program Factorial;
uses crt;
var n,f,i :integer;
BEGIN
clrscr;
writeln(‘Задайте n’);
readln(n);
for i:=1 to n do
f:=f*i;
writeln(‘F = ’,f);
readln;
END.
Верно ли написана Даная программа, если да, то определите значение F при n=3, если нет – запишите исправленный вариант программы.
00Вычисление n! (n! = 1 * 2 * 3 * … * n)
Program Factorial;
uses crt;
var n,f,i :integer;
BEGIN
clrscr;
writeln(‘Задайте n’);
readln(n);
for i:=1 to n do
f:=f*i;
writeln(‘F = ’,f);
readln;
END.
Верно ли написана Даная программа, если да, то определите значение F при n=3, если нет – запишите исправленный вариант программы.

Правильный вариант программы:
Program Factorial;
uses crt;
var n,f,i :integer;
BEGIN
clrscr;
writeln(‘Задайте n’);
readln(n);
f:=1;
for i:=1 to n do
f:=f*i;
writeln(‘F = ’,f);
readln;
END.
Ответ: F=6.
К-4
-9906070485Напишите фрагмент программы для решения следующей задачи: Вычислить сумму чисел от 3 до 9, кратных четырем (описательную часть программы пропустите).
00Напишите фрагмент программы для решения следующей задачи: Вычислить сумму чисел от 3 до 9, кратных четырем (описательную часть программы пропустите).

Фрагмент программы:
S:=0;
For x:=3 to 9 do
Begin
If x mod 4 = 0 then S:=S+x
End;
Writeln ('Сумма равна ',S);