Урок по теме
«Создание движущихся графических объектов с помощью циклических операторов»
Тип урока: урок совершенствования знаний умений, навыков.
Цели урока: закрепление знаний о циклических вычислительных процессах, навыков работы с графическими операторами языка QBasic, получение нестандартных умений работы с циклическими операторами, закрепление навыков работы на координатной плоскости, приёмов математического моделирования, а также развитие математического мышления учащихся.
Ход урока:
Восстановление опорных знаний:
а) учащимся предлагается вспомнить определение и привести примеры циклических вычислительных процессов;
б) выводится на экран общий вид операторов цикла с параметром:
FOR X=X0 TO Xn STEP H
тело
цикла
NEXT X,
и задаётся вопрос о том, что означают фигурируемые в конструкции переменные
(X- параметр цикла, X0-его начальное значение Xn-его конечное значение, H- шаг изменения параметра);
в) аналогично выводятся на экран изученные ранее графические операторы языка QBasic:
оператор построения отрезка
LINE(X1,Y1)-(X2,Y2),C
оператор построения окружности
CIRCLE (X,Y),R,C
и задаётся вопрос о том, что означают переменные
((X1,Y1),(X2,Y2) – координаты начала и конца отрезка,
С-номер цвета, (X,Y) – координаты центра окружности,
R - её радиус,
C- её цвет);
г) даётся задание выразить координаты точек B, C, D, E через координаты точки A, с учётом цены деления 10, и расположения осей аналогичное экранной системе координат

X
| | | A(X,Y) | | | |
|  | | | | | | |
E | | | | | | | B |
| | | | | | | |
| | | | | | | |
| | D | | | C | | |
Y
Перед учащимися ставится вопрос: «Каким образом можно на практике применить сочетание графических операторов и циклических процессов?»
Предполагаемый ответ: «Для создания движущихся изображений»
Ставится задача на урок: с помощью изученных ранее операторов цикла и графических операторов создать программу, моделирующую движение объекта.
Рассматривается горизонтальное движение графического объекта вдоль экрана (назовём его «колесо»):

Перед учащимися ставятся вопросы: « Является ли этот процесс циклическим? Если да, то какой параметр изменяется?»
Среди возможных ответов X, Y, R (радиус круга) очевидным является X.
Учащимся предлагается составить программу создающую горизонтальное движение колеса на экране.
Предполагаемый результат:
SCREEN 12
FOR x = 75 TO 640 STEP 1
CIRCLE (x, 200), 20, 4
NEXT x
П
осле тестирования программы учащиеся получают не то, что ожидали увидеть:
После обсуждения полученного результата учащиеся приходят к выводу:
созданная ими программа работает таким образом, что компьютер, рисуя каждый раз круг на точку левее, не стирает предыдущее колесо.
Ставится вопрос о том, как решить эту проблему.
Ответ (либо найденный самостоятельно при обсуждении, либо подсказанный учителем):
аналогом стирания колеса может служить рисование в том же месте колеса окрашенного в цвет экрана «0».
Учащимся предлагается доработать программу соответствующим образом.
Предполагаемый результат:
SCREEN 12
FOR x = 75 TO 640 STEP 1
CIRCLE (x, 200), 20, 4
CIRCLE (x, 200), 20, 0
NEXT x
После тестирования программы учащиеся получают пустой экран:

Для разгадки такого неожиданного результата учащимся задаются наводящие вопросы:
Какова приблизительно, по вашему мнению, частота процессоров наших системных блоков, и что она означает?
Точный ответ 2,8 ГГц означает приблизительно 2,8 миллиарда операций в секунду.
Сколько кадров в секунду способен воспринимать глаз человека?
Ответ 24 кадра.
После чего учащиеся приходят к выводу о том, компьютер стирает круг раньше, чем они успевают его увидеть.
Для решения этой проблемы учащимся даётся технология задержки по времени, когда для разделения во времени процессов рисования и стирания между соответствующими частями программы ставится пустой цикл на большое количество повторений.
Учащимся предлагается доработать программу соответствующим образом, подобрав самим .соответствующее количество повторений в зависимости от реальной производительности их компьютера.
Один из возможных правильных результатов:
SCREEN 12
FOR x = 75 TO 640 STEP 1
CIRCLE (x, 200), 20, 4
FOR i = 0 TO 5000
NEXT i
CIRCLE (x, 200), 20, 0
NEXT x
После освоения техники движения простейших графических объектов учащимся предлагается следующая практическая работа:
а) на карточках, которые раздаются ученикам, в координатной сетке изображены графические объекты (машины, тележки и т. п.), которые варьируются по сложности, в зависимости от уровня владения программированием участника задания;
б) взяв за опорную точку центр нашего «колеса», выразить координаты всех узловых точек изображения;
в) составить и протестировать программу, которая моделировала бы на экране горизонтальное движение заданного графического объекта.
Один из возможных результатов (движение машины):
SCREEN 12
FOR x = 75 TO 640 STEP 1
CIRCLE (x, 200), 20, 4
CIRCLE (x + 125, 200), 20, 4
LINE (x, 100)-(x + 75, 100)
LINE (x, 100)-(x, 150)
LINE (x + 75, 100)-(x + 125, 150)
LINE (x - 50, 150)-(x, 150)
LINE (x + 125, 150)-(x + 200, 150)
LINE (x - 50, 150)-(x - 50, 200)
LINE (x + 200, 150)-(x + 200, 200)
LINE (x - 50, 200)-(x - 20, 200)
LINE (x + 20, 200)-(x + 100, 200)
LINE (x + 145, 200)-(x + 200, 200)
FOR i = 0 TO 5000
NEXT i
CIRCLE (x, 200), 20, 0
CIRCLE (x + 125, 200), 20, 0
LINE (x, 100)-(x + 75, 100), 0
LINE (x, 100)-(x, 150), 0
LINE (x + 75, 100)-(x + 125, 150), 0
LINE (x - 50, 150)-(x, 150), 0
LINE (x + 125, 150)-(x + 200, 150), 0
LINE (x - 50, 150)-(x - 50, 200), 0
LINE (x - 50, 200)-(x - 20, 200), 0
LINE (x + 200, 150)-(x + 200, 200), 0
LINE (x + 20, 200)-(x + 100, 200), 0
LINE (x + 145, 200)-(x + 200, 200), 0
NEXT x
4. Подведение итогов
Учащиеся предъявляют результаты работы своих программ, сравнивают их, выбирают самые работоспособные и самые красивые.
Ставится вопрос о том, как можно в дальнейшем развить и применить полученные умения (составление простейших компьютерных игр и т. п.)
В качестве домашнего задания учащимся предлагается продумать математическую модель для движения объекта по прямой, не параллельной координатным осям.