Урок №36. Дата ___________
Тема. Цикл с постусловием. Итерационный цикл.
Цели урока:
помочь учащимся усвоить итерационные циклические конструкции на языке Паскаль в сравнительной характеристике, базируясь на ранее изученной теме;
воспитание информационной культуры учащихся, внимательности, аккуратности, дисциплинированности, усидчивости;
развитие алгоритмического мышления, познавательных интересов, навыков работы на компьютере.
Ход урока
1. Организация детей к работе на уроке (2 мин)
2. Актуализация знаний (10 мин)
Чем характерен цикл с параметром?
Написать на доске общий вид убывающего и возрастающего цикла с параметром (2 учащихся у доски)
Разобрать у доски домашнее задание
Работа по карточкам на местах
3. Объяснение нового материала (15 мин)
Помимо цикла с параметром в языке Паскаль существуют еще две циклические конструкции: цикл с предусловием и цикл с постусловием, реализуемые специальными операторами.
Рассмотрим данные конструкции в сравнительной характеристике. Для этого построим следующую таблицу:
Цикл с предусловием «Пока»
Является итерационным циклом, т. к. количество повторений заранее не известно. Тело цикла выполняется после проверки условия выхода из цикла и только в том случае, когда условие истинно, иначе цикл заканчивает свою работу. Т. о. может ни разу не выполниться.
Начальное значение задается вручную. Изменения параметра тоже происходят вручную на задаваемый программистом шаг. Причем действия над параметром цикла (счетчик выполнения) может совпадать с телом цикла. В отличии от цикла «Для» параметр может быть и вещественным числом.
Условие выхода
Обязательно должно быть истинным. Является полностью противоположным условию выхода цикла «До»
Реализация на языке Паскаль:
<установка нач. значений>;
While <условие выхода> do
<тело цикла>;
Операторные скобки
Если тело цикла состоит более чем из двух операторов языка Паскаль, включая строку изменения параметра, то они заключаются в операторные скобки
Пример. Из промежутка [a, b], где а.
Введите границы промежутка’);
Readln(a, b);
If a>b tden goto k;
If a mod 2 = 0 tden I:=a else i:=a+1;
While i<=b do begin
Write (i:5);
I:=i+2
End;
Readln
End. Program pr2;
Uses crt;
Label k;
Var a, b, i: integer;
Begin
Clrscr;
K:Writeln ( ‘Введите границы промежутка’);
Readln(a, b);
If a>b tden goto k;
If a mod 2 = 0 tden I:=a else i:=a+1;
repeat
Write (i:5);
I:=i+2
Until i>b;
Readln
End.
4. Закрепление материала (10 мин)
- у доски двое учащихся решают задачу двумя способами:
№1. Вычислить сумму натурального ряда чисел от 1 до n
Program Natur;
Var a, Summa: integer;
begin
write (‘N=’); readln (N);
{Цикл с предусловием}
a:=1;
Summa:= 0;
while a<=N do
begin
Summa:= Summa+a;
a:= a+1;
end;
end.
5. Подведение итогов (3 мин)
- запись домашнего задания: учить конспект; составить программу для решения задачи:
№2. Вычислить сумму всех нечетных чисел в интервале от 1 до
N.
По условию на числа a и b наложены ограничения, при которых искомая сумма будет лежать в пределах типа integer. При a = 0 и b = 300 сумма будет наибольшей и равной 22500, что меньше 32767 (максимального значения типа integer).
Можно воспользоваться циклической программой:
program summa;
var
a,b,i,sum: integer;
begin
sum:=0;
readln(a,b);
for i:=a to b do
if i mod 2 <> 0 then sum:= sum + i;
writeln(sum);
end.
Карточки по теме «Цикл с параметром»
К-1
Определите значение целочисленной переменной S после выполнения операторов:
S:=128;
for i:=1 To 4 do
S:=S div 2;
Writeln (s);
Постройте блок-схему к этой части программы.
Карточки по теме «Цикл с параметром»
К-2
Определите значение целочисленной переменной S после выполнения операторов:
S:=128
for i:=1 To 3 do begin
S:=S+i(i+1)a;
a:=a+2
end;
Writeln (s);
Постройте блок-схему к этой части программы.
Карточки по теме «Цикл с параметром»
К-3
Вычисление 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:=fi;
writeln(‘F = ’,f);
readln;
END.
Верно ли написана даная программа, если да, то определите значение F при n=3, если нет – запишите исправленный вариант программы.
Карточки по теме «Цикл с параметром»
К-4
Напишите фрагмент программы для решения следующей задачи: Вычислить сумму чисел от 3 до 9, кратных четырем (описательную часть программы пропустите).
var
begin
for i := 3 to 9 do
begin
if (i mod 4 = 0) then
begin
s := s + i;
end;
end;
writeln('сумма равна ',s);
end.