Преподавание темы "Язык программирования Паскаль. Циклический алгоритм" в базовом курсе информатики

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


Цели:

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

Развивающая: развивать способность воспринимать, обрабатывать и обобщать информацию; развивать логическое, абстрактное мышление; развивать навыки самоконтроля и взаимоконтроля.

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

Методы обучения: словесные, проблемно-поисковые, наглядно-иллюстрационные, репродуктивные, методы самостоятельной работы.

Организационные формы: индивидуальная, фронтальная.

Оборудование: информационные листы, доска и фломастеры, мультипроектор, компьютеры, тесты.

Урок 1.

Тема: Реализация циклического алгоритма на Паскале. Табулирование функций.

Структура урока:

  1. Оргмомент, постановка цели урока – 2 мин.
  2. Подготовка к восприятию нового материала через проверку домашнего задания, повторение и актуализацию опорных знаний – 7 мин.
  3. Активное изучение нового материала – 10 мин.
  4. Осмысление и применение изученного на практике (работа на компьютерах в Паскале) – 15 мин.
  5. Самоконтроль и контроль решенных задач – 3 мин.
  6. Подведение итогов урока – 2 мин.
  7. Домашнее задание – 1 мин.

Тип урока: урок закрепления известных знаний, получения новых знаний, их осмысления, закрепления, отработки, практического применения для решения задач.

План урока:

1. Приветствие. Объявление темы и целей урока. (Постановка проблемы.)

2. Проверка домашнего задания (На дом было задано: повторить типы алгоритмов и их запись в виде блок-схем; составить блок-схему для решения задачи по табулированию функции у = ах2 – b для х изменяющимся от –7 до +12 с шагом +1). Устное фронтальное повторение сочетаем с взаимопроверкой в парах по контрольным карточкам к задаче. Разбор ошибок. Основные вопросы для устной проверки и повторения:

  1. Какие типы алгоритмов существуют (линейный, разветвляющийся, циклический);
  2. Какие типы алгоритмов мы уже можем реализовать на Паскале (линейный, разветвляющийся);
  3. Когда применяется циклический алгоритм (при повторении одних и тех же действий несколько раз);
  4. Что такое тело цикла (действия внутри цикла, именно они повторяются при исполнении алгоритма);
  5. Типы циклических алгоритмов (рассмотрены еще при изучении записи алгоритмов в виде блок-схем: со счетчиком, с предусловием, с постусловием).

Цель повторения: определить, что мы успели понять и усвоить за предыдущие уроки, и, соответственно, ликвидировать пробелы в знаниях; закрепить знания. Учащимся предлагается в парах проверить работу друг у друга и оценить по заданным критериям.

3. Новый материал – совместное изучение по информационным листам.

Информационные листы выдаются детям (и остаются у них, подклеиваются в рабочие тетради) в виде трех карточек:

Карточки теории.

Операторы цикла

  1. Цикл с параметром по возрастающим значениям параметра:

For I: = N1 to N2 do <тело цикла>;

Тело цикла – простой или составной оператор.

Составной оператор – группа операторов между begin и end.

I – переменная, порядкового типа (integer, char), N1, N2 – выражения, того же типа.

Параметр I меняет свое значение от N1 до N2 с шагом +1 (для целого типа),

если N1> N2, цикл не выполняется ни разу.

  1. Цикл с параметром по убывающим значениям параметра:

For I:= N1 downto N2 do <тело цикла>;

Параметр I меняет свое значение от N1 до N2 с шагом –1 (для целого типа),

если N1< N2, цикл не выполняется ни разу.

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

While <условие> do <тело цикла>;

Цикл выполняется пока условие истинно (верно), если условие сразу не верно – цикл не выполняется ни разу.

  1. Цикл с постусловием:

Repeat <тело цикла> until <условие>;

Цикл выполняется пока условие ложно, если условие сразу верно, то цикл выполняется один раз.

Карточки с примерами решения задачи Паскале (протабулировать функцию у = ах2 – b для х изменяющегося от –7 до +12 с шагом +1):

  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.

  1. Цикл с параметром по убывающим значениям параметра.

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.

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

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.

  1. Цикл с постусловием.

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.

Вопросы по циклическому алгоритму:

  1. Сколько переменных в программе, какого типа?
  2. Какая переменная является счетчиком цикла (параметром, переменной цикла)?
  3. Сколько раз выполняется цикл?
  4. Сколько действий и какие выполняются в цикле?
  5. Что делает программа (табулирует функцию; находит сумму, произведение, количество; находит максимальное или минимальное число; или делает что-то другое; как обозначены соответствующие переменные, каковы их начальные значения)?
  6. Какие операторы использовались в программе?
  7. Где начинается и где заканчивается оператор цикла?
  8. Как вывести промежуточные значения искомой величины (суммы или др.) и все значения переменной цикла?
  9. Как вывести заголовок (и заключительное слово)?

4. Работа на компьютерах в Паскале (Задачи 1 – 3, резерв – задача 4)

  1. Вычислить 9 значений функции у = 8х37х+ 8 для х задаваемого с клавиатуры.
  2. Вычислить у = 4х2 + 3х; х меняется от –3 до 6 с шагом 0.5.
  3. Протабулировать функцию у = 6х2 – 3sin x на интервале от х1 до х2 с шагом s.

  1. Самоконтроль (сверка с карточками решения, или с доской, или экраном мультипроектора) и контроль учителем решенных задач. Разбор ошибок.
  2. Обобщение, итог урока. Каждый ученик выставляет сам себе итоговую оценку за урок и отвечает на вопросы: что нового он узнал сегодня на уроке? Чем удовлетворен на уроке, а чем нет?

Если ученик не удовлетворен своей оценкой, считает что он в следующий раз будет работать лучше, то рядом со своей оценкой он рисует минус в кружочке, и оценка в журнал не ставится.

  1. В качестве домашнего задания даются аналогичные задачи на карточках.

Урок 2.

Тема: Нахождение суммы, произведения, количества заданных чисел.

Примерные задачи по теме:

  1. N чисел вводится с клавиатуры. Найти сумму всех чисел
  2. Найти произведение положительных чисел.
  3. Определить каких чисел больше: положительных или отрицательных.
  4. Найти среднее арифметическое четных чисел.
  5. Определить сколько чисел совпадает с первым числом.

Урок 3.

Тема: Нахождение максимального и минимального числа среди заданных.

Примерные задачи по теме:

  1. Найти максимальное число среди 15 чисел, вычисляемых по формуле х = 3 – 7а2 + 2а при а изменяющемся от –8 до 11 с шагом 0.2
  2. Найти разницу между максимальным и минимальным числом. Числа задаются с клавиатуры.
  3. Найти количество чисел, совпадающих с минимальным.

Урок 4.

Тема: Нахождение суммы ряда.

Задачи на эту тему (как, впрочем, и на другие) можно найти очень много в литературе.

Урок 5.

Тема: Решение различных задач на цикл, обобщение, подготовка к итоговому тесту.

Урок 6.

Тема: Проверочная работа по теме “Язык программирования Паскаль. Циклический алгоритм”

Проверочная работа проводится в виде теста.

  1. Что выведется на экран в результате выполнения программы:
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

е) другое

 

  1. Чему будут равны значения переменных 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

е) другому

  1. Что вычисляет данная программа:
program dun;

var x, k: integer;

begin k:= 0;

for x:= 5 to 10 do k:= k+ x;

writeln (k);

end.

 

а) сумму

б) количество

в) произведения

г) максимальное значение

д) минимальное значение

е) другое

  1. Что выведется на экран в результате выполнения программы:
 

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

е) другое

  1. Что находит данная программа:
 

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.

а) сумму

б) количество

в) произведения

г) максимальное значение

д) минимальное значение

е) другое

  1. Чему будут равны значения переменных 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

е) другому

  1. Что находит данная программа:
 

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.

а) сумму

б) количество

в) произведения

г) максимальное значение

д) минимальное значение

е) другое

  1. Сколько раз будет выполнятся цикл:
  2. Сколько раз будет выполнятся цикл:
 

for f:=3 to 7 do a:= a+ 2;

for u:=3 to 2 do r:= r+ u;

a) 1

б) 0

в) 4

г) 5

д) 2

  1. Чему будет равно значение переменной 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

е) другому

  1. Определить значение переменной s после выполнения следующих операторов:

s:= 1; n:= 3;

for i:= 2 to n do s:= s+ i* 2;

а) 3; б) 5; в) 4; г) 6; д) 11.

  1. Чему будет равно значение переменной S после выполнения фрагмента программы:

y:= 1; s:= 0;

while y<= 2 do begin s:= s+ y; y:=y+ 1 end;

а) 1; б) 2; в) 3; г) 4.

  1. Выберите фрагмент программы, который вычисляет значение функции , если аргумент х изменяется от 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;

  1. Какие из приведенных ниже программ содержат ошибку, приводящую к “зацикливанию”:

а) 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);

  1. Сколько раз будут выполнены операторы внутри цикла в следующем фрагменте:

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.

  1. Что будет выведено на экран после выполнения следующих операторов:

p:= 1; I:= 1;

repeat p:= p* 2;

I:= I- 1

until I<= 1; writeln (p);

а) 2; б) 4; в) 1; г) 8.