Цели:
Образовательная: познакомиться с записью и выработать навыки использования операторов цикла на языке программирования Паскаль, научиться табулировать функции в среде Паскаль, оформлять таблицы, находить сумму, произведение и количество заданных чисел, находить максимальное и минимальное число среди заданных, находить сумму ряда.
Развивающая: развивать способность воспринимать, обрабатывать и обобщать информацию; развивать логическое, абстрактное мышление; развивать навыки самоконтроля и взаимоконтроля.
Воспитательная: воспитывать сознательное отношение и творческий подход к изучаемому предмету, четкость и организованность в труде, аккуратность, внимательность, бережное отношение к технике и к информации.
Методы обучения: словесные, проблемно-поисковые, наглядно-иллюстрационные, репродуктивные, методы самостоятельной работы.
Организационные формы: индивидуальная, фронтальная.
Оборудование: информационные листы, доска и фломастеры, мультипроектор, компьютеры, тесты.
Урок 1.
Тема: Реализация циклического алгоритма на Паскале. Табулирование функций.
Структура урока:
- Оргмомент, постановка цели урока – 2 мин.
- Подготовка к восприятию нового материала через проверку домашнего задания, повторение и актуализацию опорных знаний – 7 мин.
- Активное изучение нового материала – 10 мин.
- Осмысление и применение изученного на практике (работа на компьютерах в Паскале) – 15 мин.
- Самоконтроль и контроль решенных задач – 3 мин.
- Подведение итогов урока – 2 мин.
- Домашнее задание – 1 мин.
Тип урока: урок закрепления известных знаний, получения новых знаний, их осмысления, закрепления, отработки, практического применения для решения задач.
План урока:
1. Приветствие. Объявление темы и целей урока. (Постановка проблемы.)
2. Проверка домашнего задания (На дом было задано: повторить типы алгоритмов и их запись в виде блок-схем; составить блок-схему для решения задачи по табулированию функции у = ах2 – b для х изменяющимся от –7 до +12 с шагом +1). Устное фронтальное повторение сочетаем с взаимопроверкой в парах по контрольным карточкам к задаче. Разбор ошибок. Основные вопросы для устной проверки и повторения:
- Какие типы алгоритмов существуют (линейный, разветвляющийся, циклический);
- Какие типы алгоритмов мы уже можем реализовать на Паскале (линейный, разветвляющийся);
- Когда применяется циклический алгоритм (при повторении одних и тех же действий несколько раз);
- Что такое тело цикла (действия внутри цикла, именно они повторяются при исполнении алгоритма);
- Типы циклических алгоритмов (рассмотрены еще при изучении записи алгоритмов в виде блок-схем: со счетчиком, с предусловием, с постусловием).
Цель повторения: определить, что мы успели понять и усвоить за предыдущие уроки, и, соответственно, ликвидировать пробелы в знаниях; закрепить знания. Учащимся предлагается в парах проверить работу друг у друга и оценить по заданным критериям.
3. Новый материал – совместное изучение по информационным листам.
Информационные листы выдаются детям (и остаются у них, подклеиваются в рабочие тетради) в виде трех карточек:
Карточки теории.
Операторы цикла
- Цикл с параметром по возрастающим значениям параметра:
For I: = N1 to N2 do <тело цикла>;
Тело цикла – простой или составной оператор.
Составной оператор – группа операторов между begin и end.
I – переменная, порядкового типа (integer, char), N1, N2 – выражения, того же типа.
Параметр I меняет свое значение от N1 до N2 с шагом +1 (для целого типа),
если N1> N2, цикл не выполняется ни разу.
- Цикл с параметром по убывающим значениям параметра:
For I:= N1 downto N2 do <тело цикла>;
Параметр I меняет свое значение от N1 до N2 с шагом –1 (для целого типа),
если N1< N2, цикл не выполняется ни разу.
- Цикл с предусловием:
While <условие> do <тело цикла>;
Цикл выполняется пока условие истинно (верно), если условие сразу не верно – цикл не выполняется ни разу.
- Цикл с постусловием:
Repeat <тело цикла> until <условие>;
Цикл выполняется пока условие ложно, если условие сразу верно, то цикл выполняется один раз.
Карточки с примерами решения задачи Паскале (протабулировать функцию у = ах2 – b для х изменяющегося от –7 до +12 с шагом +1):
- Цикл с параметром по возрастающим значениям параметра.
program ku1;
var a, b, x, y: integer;
begin
write (‘a= ‘); readln (a);
write (‘b= ‘); readln (b);
for x:= -7 to 12 do
begin
y:= a*x*x – b;
writeln (x: 3, y: 10);
end;
end.
- Цикл с параметром по убывающим значениям параметра.
program ku2;
var a, b, x, y: integer;
begin
write (‘a= ‘); readln (a);
write (‘b= ‘); readln (b);
for x:= 12 downto -7 do
begin
y:= a*x*x – b;
writeln (x: 3, y: 10);
end;
end.
- Цикл с предусловием.
program ku3;
var a, b, x, y: integer;
begin
write (‘a= ‘); readln (a);
write (‘b= ‘); readln (b);
x:= -7;
while x<= 12 do
begin
y:= a*x*x – b;
writeln (x: 3, y: 10);
x:= x+1;
end;
end.
- Цикл с постусловием.
program ku4;
var a, b, x, y: integer;
begin
write (‘a= ‘); readln (a);
write (‘b= ‘); readln (b);
x:= -7;
repeat
y:= a*x*x – b;
writeln (x: 3, y: 10);
x:= x+1;
until x> 12;
end.
Вопросы по циклическому алгоритму:
- Сколько переменных в программе, какого типа?
- Какая переменная является счетчиком цикла (параметром, переменной цикла)?
- Сколько раз выполняется цикл?
- Сколько действий и какие выполняются в цикле?
- Что делает программа (табулирует функцию; находит сумму, произведение, количество; находит максимальное или минимальное число; или делает что-то другое; как обозначены соответствующие переменные, каковы их начальные значения)?
- Какие операторы использовались в программе?
- Где начинается и где заканчивается оператор цикла?
- Как вывести промежуточные значения искомой величины (суммы или др.) и все значения переменной цикла?
- Как вывести заголовок (и заключительное слово)?
4. Работа на компьютерах в Паскале (Задачи 1 – 3, резерв – задача 4)
- Вычислить 9 значений функции у = 8х3 – 7х+ 8 для х задаваемого с клавиатуры.
- Вычислить у = 4х2 + 3х; х меняется от –3 до 6 с шагом 0.5.
- Протабулировать функцию у = 6х2 – 3sin x на интервале от х1 до х2 с шагом s.
- Самоконтроль (сверка с карточками решения, или с доской, или экраном мультипроектора) и контроль учителем решенных задач. Разбор ошибок.
- Обобщение, итог урока. Каждый ученик выставляет сам себе итоговую оценку за урок и отвечает на вопросы: что нового он узнал сегодня на уроке? Чем удовлетворен на уроке, а чем нет?
Если ученик не удовлетворен своей оценкой, считает что он в следующий раз будет работать лучше, то рядом со своей оценкой он рисует минус в кружочке, и оценка в журнал не ставится.
- В качестве домашнего задания даются аналогичные задачи на карточках.
Урок 2.
Тема: Нахождение суммы, произведения, количества заданных чисел.
Примерные задачи по теме:
- N чисел вводится с клавиатуры. Найти сумму всех чисел
- Найти произведение положительных чисел.
- Определить каких чисел больше: положительных или отрицательных.
- Найти среднее арифметическое четных чисел.
- Определить сколько чисел совпадает с первым числом.
Урок 3.
Тема: Нахождение максимального и минимального числа среди заданных.
Примерные задачи по теме:
- Найти максимальное число среди 15 чисел, вычисляемых по формуле х = 3 – 7а2 + 2а при а изменяющемся от –8 до 11 с шагом 0.2
- Найти разницу между максимальным и минимальным числом. Числа задаются с клавиатуры.
- Найти количество чисел, совпадающих с минимальным.
Урок 4.
Тема: Нахождение суммы ряда.
Задачи на эту тему (как, впрочем, и на другие) можно найти очень много в литературе.
Урок 5.
Тема: Решение различных задач на цикл, обобщение, подготовка к итоговому тесту.
Урок 6.
Тема: Проверочная работа по теме “Язык программирования Паскаль. Циклический алгоритм”
Проверочная работа проводится в виде теста.
- Что выведется на экран в результате выполнения программы:
program pety; var i, a, c: integer; begin c:= 3; a:= 0; for i:= 2 to 4 do c:= c+ i; a:= a+ 1; writeln (a, c); end. |
а) 12, 3 б) 1, 12 в) 3, 6 г) 1, 3 д) 1, 7 е) другое
|
- Чему будут равны значения переменных a, b после выполнения программы:
program dar; var a, b, c: integer; begin for c:= 1 do 5 do begin a:= a+ 1; b:= b- 1; end; end. |
а) 1, –1 б) 5, –1 в) 0, 0 г) 5, -5 д) 5, 0 е) другому |
- Что вычисляет данная программа:
program dun; var x, k: integer; begin k:= 0; for x:= 5 to 10 do k:= k+ x; writeln (k); end. |
а) сумму б) количество в) произведения г) максимальное значение д) минимальное значение е) другое |
- Что выведется на экран в результате выполнения программы:
program pty; var i, a, c: integer; begin c:= 3; a:= 0; for i:= 6 to 4 do c:= c+ i; a:= a+ 1; writeln (a, c); end. |
a) 12, 3 б) 1, 12 в) 3, 6 г) 0, 3 д) 1, 7 е) другое |
- Что находит данная программа:
program rrun; var x, k, a: integer; begin readln (a); k:= a; for x:= 2 to 10 do begin readln (a); if a> k then k:= a; end; writeln (k); end. |
а) сумму б) количество в) произведения г) максимальное значение д) минимальное значение е) другое |
- Чему будут равны значения переменных a, b после выполнения программы:
program dr; var a, b, c: integer; begin for c:= 1 do 5 do a:= a+ 1; b:= b- 1; end. |
а) 1, -1 б) 5, -1 в) 0, 0 г) 5, -5 д) 5, 0 е) другому |
- Что находит данная программа:
program dun; var i, a, s: integer; begin s:= 0; for i:= 1 to 10 do begin readln (a); if a< 5 then s:= s+ 1; end; writeln (s); end. |
а) сумму б) количество в) произведения г) максимальное значение д) минимальное значение е) другое |
- Сколько раз будет выполнятся цикл:
- Сколько раз будет выполнятся цикл:
for f:=3 to 7 do a:= a+ 2; for u:=3 to 2 do r:= r+ u; |
a) 1 б) 0 в) 4 г) 5 д) 2 |
- Чему будет равно значение переменной y после выполнения программы:
program dn; var x, y: integer; begin y:= 0; for x:= 2 to 5 do y:= y* x; writeln (y); end. |
а) 4 б) 14 в) 120 г) 15 д) 0 е) другому |
- Определить значение переменной s после выполнения следующих операторов:
s:= 1; n:= 3;
for i:= 2 to n do s:= s+ i* 2;
а) 3; б) 5; в) 4; г) 6; д) 11.
- Чему будет равно значение переменной S после выполнения фрагмента программы:
y:= 1; s:= 0;
while y<= 2 do begin s:= s+ y; y:=y+ 1 end;
а) 1; б) 2; в) 3; г) 4.
- Выберите фрагмент программы, который вычисляет значение функции , если аргумент х изменяется от 0 до 6 с шагом 1,5:
а) x:= 0;
while x<= 6 do begin y:= 1/ (1+ x); x:= x+ 1.5 end;
б) x:= 0;
if x<= 6 then begin y:= 1/ (1+ x); x:= x+ 1.5 end;
в) while x<= 6 do begin x:= 0; y:= 1/ (1+ x); x:= x+ 1.5 end;
г) x:= 0;
while x<= 6 do y:= 1/ (1+ x); x:= x+ 1.5;
- Какие из приведенных ниже программ содержат ошибку, приводящую к “зацикливанию”:
а) i:= 0; for m:= 10 to 0 do i:= i+ 1; writeln (i);
б) i:= 0; repeat i:= i+ 1until i= 0; writeln (i);
в) i:= 0; while (i= 0) or (i< 10) do i:= i+ 1; writeln (i);
г) i:= 0; repeat i:= i+ 1until i< 0; writeln (i);
д) i:= 0; while (i= 0) or (i> 0) do i:= i+ 1; writeln (i);
- Сколько раз будут выполнены операторы внутри цикла в следующем фрагменте:
x:= 2; y:=10;
while y- x> 1 do begin
x:= x+ 1; y:= y- 1; end;
sum:= x+ y;
а) 2; б) 3; в) 4; г) 5 д) 6.
- Что будет выведено на экран после выполнения следующих операторов:
p:= 1; I:= 1;
repeat p:= p* 2;
I:= I- 1
until I<= 1; writeln (p);
а) 2; б) 4; в) 1; г) 8.