Вложенные циклы, применение (8-й класс)

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

Класс: 8


Цели урока:

  1. Повторение изученного ранее материала: типы переменных, структура программы, генератор случайных чисел, оператор цикла с постусловием.
  2. Изучение понятия “вложенные циклы”.
  3. Совершенствование навыков составления программ на ЯП Паскаль.

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

1) Образовательные:

  • - изучение основных понятий темы;
  • - совершенствование навыков составления программ на ЯП Паскаль;
  • - стимулирование интереса учащихся к программированию.

2) Развивающие:

  • - развитие алгоритмического мышления, внимания, памяти, умения применять полученные знания при решении задач;
  • - развитие познавательного интереса учащихся;
  • - развитие умений анализировать информацию, поступающую от учителя;
  • - развитие умений устанавливать взаимосвязь вопросов информатики с другими школьными предметами, с реальной жизнью.

3) Воспитательные:

  • - воспитание интереса к предмету;
  • - воспитание культуры речи и работы на компьютере.

Тип урока

  • - урок формирования, обобщения и закрепления знаний.

Формы организации учебных занятий на уроке:

  • повторение пройденного материала (типы величин, структура программы, генератор случайных чисел, оператор цикла с постусловием);
  • изложение нового материала, показ фрагмента фильма;
  • выполнение практикума;
  • подведение итогов выполнения практикума, показ презентации программы “Matrix” (фронтальный опрос);
  • подведение итогов урока

Средства обучения:

технические:

  • ПК,
  • мультимедийный проектор,
  • экран;

программные:

среда программирования Турбо Паскаль;

наглядные:

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

  • список вопросов для обсуждения,
  • листинг итоговой программы предыдущего урока,
  • таблица кодов ASCII.

План урока

  • Организационный момент – 3 мин.
  • Актуализация знаний – 6 мин.
  • Объяснение нового материала – 10 мин.
  • Закрепление полученных знаний. Практикум – 15 мин.
  • Подведение итогов урока - 6 мин.

Ход урока

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

Учитель: “Требования сегодняшнего времени ставят перед вами - учащимися задачу не только получать новые знания, но и научиться анализировать эти знания, на их основе создавать новые и уметь применять их на практике в реальной жизни. На сегодняшнем уроке мы попытаемся это сделать. А также попытаемся сделать обычный рядовой урок более интересным”.

Актуализация знаний

Учитель: “Записываем тему урока “Вложенные циклы”.

Демонстрируется заставка к известному фильму (фрагмент фильма “Матрица”) и говорится о том, что сегодня современный кинематограф не может существовать без применения компьютерных технологий. Например, как в данном фрагменте, для создания специальных эффектов. На основе полученных ранее знаний и новых мы попробуем создать аналогичную программу. Сообщается, что при решении данной задачи приходится использовать вложенные циклы.

Записывается условие задачи: “Составить программу имитации заставки к фильму “Матрица”.

  

Рисунок 1.

 Демонстрируется презентация. На слайдах:

Рисунок 2.   Рисунок 3.

   

Рисунок 2. Листинг программы, созданной на предыдущем уроке (программа выводила на экран заглавные буквы латинского алфавита зеленого цвета со случайными координатами).

Рисунок 3. Результат работы программы (символы на экране).

Предлагается оптимизировать данную программу.

Разбираются следующие вопросы:

- структура программы (заголовок программы, описательный раздел, текст программы, который начинается словом BEGIN и заканчивается – END;

  • типы переменных величин ЯП Паскаль, которые использовали для написания данной программы; (Целочисленный, вещественный, текстовый. Выясняем, является ли любая цифра символом. (Цифра – это и число и символ в зависимости от описания величины.)
  • назначение процедуры randomize;
  • понятие цикла;
  • особенности оператора цикла c постусловием repeat (операторы, которые находятся внутри цикла будут выполнены хотя бы один раз, число повторений цикла repeat определяется ходом выполнения программы, операторы внутри цикла repeat выполняются до тех пор, пока условие, стоящее после слова until, ложно, после слова until надо записывать условие завершения цикла);
  • размер символьного экрана монитора – число строк, число столбцов; (выясняем, что значение - 80 строк экрана связано с тем, что у печатающей машинки ширина строки 80 позиций.)
  • подбор промежуточных значений для функции random();
  • таблица кодов ASCII.(American Standard Code for Information Interchange) для задания значений символьной переменной. (Отмечаем, что разработана и утверждена Американским институтом стандартизации.)

Объяснение нового материала

В реальной жизни мы часто встречаем ситуации, когда один цикл вложен внутрь другого. Например, смена месяцев (когда пройдет 12 месяцев - сменится год), смена дней (когда пройдет 30 дней - сменится месяц), смена суток (когда пройдет 24 часа - сменится день), смена часов (когда пройдет 60 минут - сменится час) и т.д. В нашей задаче смена столбца происходит тогда, когда его номер будет больше или равен некоторому случайно заданному значению. (Рисуется на доске). Как запрограммировать данную ситуацию? Существует такая структура – цикл в цикле. Называется она “вложенные циклы”.

Вносятся изменения в исходную программу (презентация и приложение 1).

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

Закрепление

Выполнение практикума. Проверка работы программы.

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

  1. цвет падающих букв на экране был случайным,
  2. вместо букв падали цифры,
  3. падающие буквы не оставляли след (Приложение 1).

Подведение итогов урока

  • Сравниваем результаты работы нашей программы с заставкой к фильму.
  • С задачей справились.
  • Смотрим результаты работы программ тех учащихся, кто справился с дополнительным заданием.
  • Выставление оценок наиболее активным учащимся.
  • Задача, поставленная в начале урока, решена. Познакомились со структурой вложенных циклов и представили наши знания вот в таком наглядном виде (Приложение 2).

Приложение 1 “Раздаточный материал для учащихся”

Тема урока: “Вложенные циклы. Применение”

Блиц - вопросы:

  1. Структура программы.
  2. Типы величин.
  3. Назначение генератора случайных чисел.
  4. Назначение функции random ().
  5. Размеры символьного экрана монитора.
  6. Понятие цикла. Привести примеры циклов из реальной жизни.
  7. Тип цикла с постусловием. Его особенности.

Задание. Составить программу имитации заставки к фильму “Матрица”, используя программу прошлого урока, которая выводила на экран заглавные буквы латинского алфавита зеленого цвета со случайными координатами.

Текст исходной программы.

Program matrix;

Uses   crt;

Var  x,y:integer;

symbol:char;

BEGIN

clrscr; randomize;

Repeat

y:=random(24)+1; x:=random(80)+1;

   symbol:=char(random(26)+65);

       textcolor(2) ;

GoToXY(x,y);write(symbol);delay(2000);

Until keypressed;

END.

 Дополнительно.

Изменить программу таким образом, чтобы на экране падали:

  1. Символы – цифры.
  2. Символы произвольного цвета.
  3. Символы не оставляющие след.

Приложение 2 “Листинг итоговой программы урока”

Программа “ Матрица”

Задача. Составить программу имитации заставки к фильму “Матрица”, используя программу прошлого урока, которая выводила на экран заглавные буквы латинского алфавита зеленого цвета со случайными координатами.

program matrix; {заголовок программы}

uses crt; {подключение библиотек}

var x,y,y1:integer; {описание переменных}

symvol:char;

BEGIN {начало программы}

clrscr; randomize;{очистка экрана, запуск генератора случайных чисел}

repeat {начало внешнего цикла}

y:=1; x:=random(80)+1; y1:=random(24)+1; {задаются координаты символа }

symvol:=char(random(26)+65); {переменной присваивается код символа}

textcolor(2) ;{установка зеленого цвета символа,}

repeat {начало внутреннего цикла}

GoToXY(x,y); write(symvol); delay(2000);{установка курсора в позицию х, у экрана, печать символа, задержка символа на экране}

y:=y+1; {изменение номера строки}

until y>=y1; {проверка условия внутреннего цикла}

until keypressed; {проверка условия внешнего цикла}

END. {конец программы}