Изучение операторов цикла в школьном курсе информатики

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


Цель урока: Формировать умение применять операторы цикла с предусловием и постусловием при решении задач на языке программирования Pascal.

Задачи урока:

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

Развивающие – формирование алгоритмического мышления и навыков работы при создании программ, развитие познавательного интереса к предмету, развитие умения применять полученные знания к решению проблем из реальной жизни.

Воспитывающие – развитие самостоятельности мышления, развитие грамотной устой речи с использованием специальных терминов.

Тип урока: урок совершенствования знаний и умений.

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

Технические и программные средства: персональные компьютеры, мультимедиа проектор, среда программирования Pascal.

Методическое обеспечение урока: электронная презентация по теме урока (Приложение 1), карточки с индивидуальными заданиями.

План урока

Этапы урока Время Цель Формы работы
1 Организационный момент 3 мин. Создание рабочей атмосферы
  • Объявление темы урока.
  • Формирование мотивации через постановку проблемных вопросов.
  • Рассказ о ходе урока
2 Контроль домашнего задания 10 мин. Контроль полученных знаний о базовых алгоритмических структурах и операторах цикла
  • Фронтальный опрос (используется электронная презентация).
  • Выполнение индивидуальных разноуровневых заданий.
3 Применение знаний к решению задачи   Научить использовать циклы в решении задач, формирование интереса к предмету.
  • Фронтальная беседа с целью построения алгоритма задачи и программы (использование презентации).
  • Тестирование программы.
  • Выполнение учащимися комплекса упражнений для снятия утомления.
4 Самостоятельная работа 10 мин. Отработка на практике полученных знаний. Выполнение учащимися обязательных заданий, заданий углубленного уровня.
5 Подведение итогов. 3 мин. Обобщение учебного материала Беседа с элементами фронтального опроса.
6 Домашнее задание 2 мин.  
  • Запись домашнего задания.
  • Объявление темы следующего урока.
  • Опережающее домашнее задание.

Ход урока

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

Мы продолжаем изучать язык программирования Паскаль. Вспомним с какими операторами мы познакомились на прошлом уроке. (Операторы циклов с предусловием и постусловием). Сегодня будем решать задачи с использованием этих операторов. Многие из вас любят играть в компьютерные игры. Скажите, можем ли мы сейчас написать программу-игру на языке Паскаль? Это будет нашим проблемным вопросом на уроке. Ход урока:

  • проверяем домашнее задание и повторяем пройденный материал;
  • отвечаем на проблемный вопрос;
  • вы выполняете самостоятельную работу за ПК.

2. Контроль домашнего задания.

Сейчас мы повторим алгоритмические структуры цикла и операторы цикла языка программирования Pascal, а также возможности и особенности их использования.

а) Запись на доске решения домашней задачи. № 70 п.4.4 “Задачник-практикум”.

Составить программу вычисления значения функции F(x) на отрезке [a,b] с шагом h. F(x)=x-sinx.

б) Индивидуальная карточка (низкий уровень):

Определить значение переменной S. (s=13)

      I:=1; S:=0; j:=5;

      While i<j do

      Begin

      S:=S+i*j;

      I:=I+1;

      J:=J-1

      End;

в) Индивидуальная карточка (углубленный уровень) для выполнения за компьютером (исходная программа уже набрана).

“Изменить программу так, чтоб вычислялась сумма целых чисел кратных 5, если последовательно вводятся N целых чисел”.

      Program ex;

      Var a,s,I:integer;

      Begin

      S:=0;

      I:=1;

      Repeat

      Writeln(‘введите число’);

      Readln(a);

      S:=s+a;

      I:=i+1

      Until i>10;

      Writeln(‘s=’,s);

      Readln;

      End.

г) Фронтальный опрос, задания сопровождаются слайдами презентации.

Вопросы:

  • Что такое цикл? Многократное повторение последовательности действий по некоторому условию.
  • В каких ситуациях могут применяться циклы?
  • Для разминки: Соотнесите блок-схему алгоритмической структуры и оператор. Слайд 2.
  • Рассказать об операторах по плану (связный рассказ). Слайд 3.
  1. Определение цикла с предусловием/постусловием.
  2. Порядок выполнения.
  3. В каком случае используется этот цикл.
  • Приведите примеры задач и ситуаций, в которых используется этот цикл.
  • Определите значения переменных после выполнения операторов. Сколько раз выполняется цикл. Слайд 4.

1. A:=1; b:=1;

While a<=3 do a:=a+1;

B:=b+1;

2. s:=0; i:=1;

Repeat

s:=s+2*I;

i:=i+1

Until i>2

  • Найдите ошибки в записи фрагмента программы и постарайтесь определить, что хотел программист. Слайды 5, 6, 7, 8.
  • Запишите фрагмент программы (операторы), выполняющие следующие действия: (в тетрадях и на доске). Слайд 9.
    • Вычислить сумму натурального ряда чисел от 1 до 10.
    • Последовательно вводят 5 целых чисел. Найти количество отрицательных чисел.
    • Последовательно вводят N целых чисел. Найти произведение чисел больших 8 и меньших 15.

I:=1;

While i<=10 do

Begin

S:=S+i;

I:=I+1

End;

I:=1;

Repeat

Writeln(‘введите число’);

Readln(a);

If a<0 then k:=k+1;

I:=I+1

Until I>5;

I:=1; p:=1;

Repeat

Writeln(‘введите число’);

Readln(a);

If (a>8) and (a<15) then p:=p*a;

I:=I+1

Until I>N;

3. Решение задачи.

В начале урока мы поставили проблемный вопрос: “Можно ли с помощью Языка Pascal написать игровую программу?”.

Предлагаю поиграть в простую, но азартную игру на угадывание целого числа от 1 до 10.

Пусть я буду ведущей и загадаю число, а один из вас будет угадывать (как в детстве). Играем с детьми, если предполагаемое число меньше загаданного, говорю “Мало”, если больше загаданного, то “Много”.

Пусть теперь число “загадывает” программа, а пользователь отгадывает, т.е. вводит предполагаемое значение.

Обсудим алгоритм игры.

Что сначала должна сделать программа? Выбрать случайное число от 1 до 10 и прочитать целое число, вводимое пользователем – предполагаемое значение.

Как программа должна определить угадал или нет пользователь? С помощью операции сравнения.

Каковы действия программы, если введённое число равно загаданному числу? Программа должна поздравить победителя.

Каковы действия программы, если введённое и загаданное числа не равны? Если введённое число меньше задуманного, то сообщить об этом игроку, иначе сообщить ему, что введённое число больше задуманного и предложить ввести новое число.

Будут ли действия программы повторяться? Да, надо повторять ввод целого значения и проверку до тех пор, пока число не будет угадано.

Затем вывести поздравление победителю и завершить работу.

Какой из алгоритмов цикла целесообразней использовать? Так как возможно, что число будет угадано сразу, а в этом случае уже не надо выводить подсказку игроку, то лучше использовать цикл с предусловием.

Просмотр слайдов презентации с обсуждением.

1. Слайд 11. Исходные данные.

2. Слайд 12. Запись блок-схемы алгоритма с постепенным появлением блоков и устными пояснениями.

Всё ли, что необходимо дл создания программы мы умеем? Как программа “загадает” случайное число?

В этой программе используем новые операторы: Randomize – начальная установка специальной процедуры – “генератора”случайных чисел, Random (n) – оператор выдающий случайные целые числа от 1 до n-1.

3. Слайд 13.

4. Слайд14. Запись программы построчно. (Записывают в тетрадь)

Тестирование полученной программы. Предлагается одному из учащихся “сыграть” с программой.

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

  • Ввести подсчёт попыток.
  • Организовать игру вдвоём, т.е. загадывать и угадывать числа будут игроки, а компьютер подсчитывает число попыток.
  • Программа загадывает число то 1 до 100 или до N.
  • Сделать так, чтоб загадывал человек, а отгадывала программа.
  • При игре использовать игроку метод половинного деления для угадывания за меньшее число шагов.

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

Слайд 15. Запись программы с помощью оператора цикла с постусловием. Устные пояснения.

Вывод. Мы убедились, что, используя ваши знания по программированию, уже можно написать весьма увлекательные и забавные программы-игры. Надеюсь, что вы дома попробуете внести в программу предложенные изменения, улучшить игру и пригласить к игре друзей и родителей.

Гимнастика для снятия утомления ( моно включить лёгкую музыку).

Следующие упражнения позволят снять мышечное напряжение и усталость глаз, улучшить общее самочувствие организма.

  • Зажмуриться на 3-5 секунд, открыть глаза на 1-2 секунды, снова зажмурится.
  • Вытянуть руки вперёд, кисти рук на себя, сконцентрировать взгляд на кончиках пальцев, повернуть ладони, поднести к лицу и сконцентрировать внимание на ладонях, повторить 2-3 раза.
  • Выполнить наклоны туловища в стороны, вперёд и назад, повторить 4-5 раз.

4. Самостоятельная работа.

Теперь закрепим и проверим ваши знания. Вы получите карточки с заданиями и будете работать за компьютером. Если задание вами выполнено, то можете получить следующее, более сложное. Не забудьте провести тестирование и выполнить вычисления, указанные в задании. Результаты запишите в тетрадь, программу сохраните в вашей папке для проверки. Я постаралась подобрать для вас задачи, которые могли встретиться в реальной жизни, надеюсь, что вам будет интересно их решать. Желаю удачи!

1 вариант.

Составить программу планирования закупки товара в магазине на сумму, не превышающую заданную величину.

Program pokupka;

Var c,k,p,s:integer;

Begin

Writeln (‘введите предельную сумму’);

Readln(p);

S:=0;

Repeat

Writeln(‘введите цену товара’);

Readln©;

Writeln(‘введите количество товара’);

Readln(k);

S:=s+c*k;

Writeln(‘стоимость покупки’,s);

Until s>p;

Writeln (‘ стоимость выше предельной’);

Readln

End.

2 вариант.

Составить программу, печатающую таблицу перевода 1, 2, .. 20 евро в рубли по текущему курсу.

Program evro;

Var r,I,k:real;

Begin

Writeln(‘введите курс евро’);

Readln(k);

I:=1;

While i<=20 do begin

R:=k*I;

Writeln(I,’евро=’,r);

I:=i+1

End;

End.

Углубленный вариант.

Написать программу, помогающую вкладчику узнать, сколько лет нужно ждать сумму S, если начальный вклад равен v, процентная ставка р за год.

Program bank;

Var k:integer; v,p,s,q:real;

Begin

Writeln(‘введите размер вклада’);

Readln(v);

Writeln(‘введите процентную ставку’);

Readln(p);

Writeln(‘введите требуемую сумму’);

Readln(s);

Repeat

q:=v*p/100;

v:=v+q;

k:=k+1;

until v>s;

writeln(‘вам потребуется’,k,’лет’);

readln

end.

5. Домашнее задание.

  1. П 4.4 № 3. “Задачник-практикум” под редакцией И.Семакина. Одноклеточная амёба каждые 3 часа делится на 2 клетки. Определить, сколько амёб будет через 3, 6, 9,…, 24 часа (обязательная часть).
  2. Подобрать ситуацию игровую или из окружающей жизни, где необходимо применить повторяющиеся вычисления, т.е. цикл. Придумать алгоритм и по возможности программу. Например, игра Баше, “в 21”, “Стрельба по мишени”, подсчёт калорийности обеда, запрашивание пароля, пока на угадаете и др. (творческая часть)
  3. На следующем уроке мы будем решать задачу об очень интересных числах, связанных с загадочными свойствами чисел, “золотым сечением” и математиком Фибоначчи. Поэтому одному учащемуся предлагается подготовить доклад “Числа Фибоначчи”.