Построение графических изображений с помощью программирования – пожалуй, самая интересная для школьников часть любого языка программирования. Поэтому изучать основные алгоритмические конструкции лучше все-таки на примерах программ, в которых используется графика. Например, изучение циклов целесообразнее провести, используя построения множества одинаковых фигур (в дальнейшем называемых “семейством фигур”) и программ с элементами “движения” фигур по экрану монитора.
Так как предполагается, что основные сведения по работе оператора цикла FOR… NEXT… к этому времени уже учащимся выданы, на следующем уроке можно закрепить полученные знания с помощью графики. Представленный ниже урок рассчитан на четыре академических часа.
ТЕМА: Графика в циклах.
ЦЕЛИ УРОКА:
ОБРАЗОВАТЕЛЬНАЯ: научиться использовать оператор FOR ...NEXT ... для построения семейств фигур и создания программ с элементами мультипликации (с имитацией движения);
РАЗВИВАЮЩАЯ: развивать и совершенствовать умение использовать циклы в программах;
ВОСПИТАТЕЛЬНАЯ: воспитывать аналитическое мышление.
ТИП УРОКА: урок - закрепления и совершенствования новых знаний и умений.
МЕТОД ПРОВЕДЕНИЯ: объяснительно-иллюстративный
ТСО И НАГЛЯДНОСТЬ:
1) Программа QBasic
2) Карточки с вопросами на повторение
3) Карточки с рисунками для построения семейств фигур
4) Демонстрационные файлы
ЛИТЕРАТУРА: “Практические занятие на ПЭВМ Ямахе”
ПЛАН УРОКА
1. Организационный момент:
а) Проверка списочного состава
б) Тема, цели и план урока
2. Повторение (тестирование по карточкам – два варианта) смотрите файлы: Приложение1.doc и Приложение2.doc
3. Формирование новых знаний, умений и навыков
Циклы можно использовать для построения семейств фигур и составления программ, имитирующих движение.
Рассмотрим порядок построения семейств фигур
Порядок построения семейств фигур
Выделить:
а) количество повторяющихся фигур;
б) повторяющийся элемент для каждой фигуры.
2. Выбрать и обозначить переменной изменяющуюся величину (параметр). Определить границы её изменения и шаг (для заголовка цикла).
3. Определить порядок построения повторяющихся элементов.
4. Написать программу.
Отработка построения семейств фигур на примерах:
1) Построить семейство горизонтальных и вертикальных точек (горизонтальные точки - учитель; вертикальные точки – учащийся)
Построим семейство горизонтальных точек
Наводящие вопросы:
- Каким оператором в графическом режиме строится точка? ? (Ответ: оператор PSET)
- Какой формат у оператора PSET? (Ответ: PSET (x, y), № цвета, где x, y – координаты точки)
- Какая из координат у каждой точки в операторе изменяется? (Ответ: координата Х)
- Какое значение у координаты Х первой точки? (Ответ: Х=100)
- Какое значение у координаты Х последней точки точки? (Ответ: Х=600)
- С каким шагом будет изменяться координата Х? (Ответ: с шагом, равным 100)
- А какая координата у точек будет оставаться неизменной? (Ответ: координата Y)
- Каково значение у координаты Y? (Ответ: Y=50)
Обобщаем ответы:
Итак, cтроим точки, используя оператор PSET. При построении горизонтальных точек будет изменяться координата Х, следовательно, она и будет выступать у нас в роли параметра цикла. Начальным значением параметра цикла будет 100, конечным – 600, изменяться параметр цикла будет с шагом 100. В операторе цикла на месте координаты Х ставим параметр цикла, на месте же координаты Y пишем конкретное значение, раз оно у всех точек остаётся без изменения.
SCREEN 12
REM Горизонтальные точки
FOR X = 100 TO 650 STEP 100
PSET (X,50), 14
NEXT X
REM Вертикальные точки
FOR Y = 100 TO 400 STEP 50
PSET (100,Y), 1
NEXT Y
Рисунок 1
2) Построение семейства прямоугольников (учитель с помощью учеников)
Наводящие вопросы:
- Каким оператором в графическом режиме строятся отрезки и прямоугольники ? (Ответ: оператором LINE)
- Какой формат у оператора LINE для построения прямоугольника? (Ответ: LINE (x1, y1)– (x2, y2), № цвета, B (или BF), где x1, y1 и x2, y2 – координаты точек углов прямоугольника, взятых по диагонали)
- Какая из координат у каждого прямоугольника в операторе изменяется? (Ответ: координаты Х обеих точек)
Если изменяются обе координаты Х, то как параметр цикла можно представить одну из них, например, координату левой верхней точки, а координату Х правой нижней точки, взятой по диагонали, выразить через параметр цикла.
- Какое значение у координаты Х левой верхней точки первого прямоугольника? (Ответ: Х=50)
- Какое значение у координаты Х левой верхней точки последнего прямоугольника? (Ответ: Х=450)
- С каким шагом будет изменяться координата Х левой верхней точки? (Ответ: с шагом, равным 200)
- На сколько больше координата Х правой нижней точки по отношению к верхней левой точки? (на 150)
- Следовательно, в формате оператора LINE, вместо верхней левой точки Х будем писать параметр цикла, а на месте правой нижней – Х+150.
- А какая координата у точек будет оставаться неизменной? (Ответ: координаты Y)
- Каково значение у координат Y обеих точек? (Ответ: Y1=100 Y2=200)
SCREEN 12
REM Прямоугольники
FOR X = 50 TO 450 STEP 200
LINE (X,50)–(X+150,200), 6,BF
NEXT X
Рисунок 2
3) Какую картинку изобразит программа:
SCREEN 12 FOR Y = 60 TO 240 STEP 60 CIRCLE (300, Y), 50 NEXT Y |
SCREEN 12 FOR X = 10 TO 50 STEP 10 LINE (0, 0) - (X, 100), 12 NEXT X |
Но если при построении семейства фигур изменяются несколько независимых величин? Как действовать тогда?
Рассмотрим это на примере следующей задачи:
Построить семейство закрашенных секторов окружностей, у которых увеличивается радиус и одновременно с этим секторы смещаются вверх (задача с двумя изменяющимися зависимыми величинами)
Рисунок 3
В данной задаче изменяются две независимые величины: координата Y центра сектора и радиус сектора.
Наводящие вопросы:
- Каким оператором в графическом режиме строятся окружности, эллипсы, дуги и сектора окружностей и эллипсов? (Ответ: оператором CIRCLE)
- Какой формат у оператора CIRCLE для построения
сектора?
(Ответ: CIRCLE (x, y), R, № цвета, –A, –B, где (x, y) – координаты центра окружности, сектор которой будет строиться, R – радиус этой окружности, № цвета – цвет, которым будет строиться контур окружности, A – начальный угол дуги, B – конечный угол дуги) - Какая координата в операторе будет оставаться неизменной? (Ответ: координата Х)
- Каково значение координаты Х? (Ответ Х=300)
- Если взять за основу, т.е. за параметр цикла координату Y, то какое будет начальное значение параметра цикла, конечное его значение и шаг? (Ответ: начальное значение – 50, конечное – 250, а шаг –50)
Радиус тоже изменяется равномерно (начальное его значение – 10, конечное – 50 и изменение происходит с шагом 50), следовательно, его тоже можно выразить через параметр цикла, как Y/5 (потому что по отношению к координате Y его значение меньше в 5 раз).
Получится следующая программа:
SCREEN 12
REM Сектора
FOR Y = 50 TO 250 STEP 50
CIRCLE (300, Y), Y/5, 10, –2*3.14, –3.14
NEXT Y
Итак, в предыдущем задании изменяются две величины: абсциссы (координаты по Х) координаты центров секторов круга и их радиусы. Важно, что эти величины не являются независимыми.
Порядок построения семейств фигур с несколькими зависимыми изменяющимися величинами
При решении задач, в которых встречаются несколько зависимых изменяющихся величин, нужно:
1) выбрать одну из величин в качестве независимого аргумента;
2) выразить остальные изменяющиеся величины через значения аргумента;
3) написать программу с оператором цикла, параметром которого будет являться независимая величина, на месте же других изменяющихся величин необходимо поставить их выражения через аргумент.
Задача: Построить семейство прямоугольников (учащийся)
SCREEN 12
FOR X = 150 TO 600 STEP 150
LINE (0, 0) - (X, X/3), 12, B
NEXT X
Рисунок 4
4. Закрепление новой темы Составление программы
Составить программы для построения семейств фигур (работа по карточкам) смотрите файлы: Рисунок6.JPG, Рисунок7.JPG, Рисунок8.JPG, Рисунок9.JPG, Рисунок10.JPG
5. Формирование новых знаний, умений и навыков
Используя как основу принцип построения семейства фигур, можно создавать программы, имитирующие движение фигур по экрану (некое подобие мультипликации)
Порядок работы над программой с мультипликацией (имитацией движения)
1. Записать программу построения семейства фигур.
2. Шаг построения очередной фигуры задать минимальным.
3. Последней строчкой в теле цикла такой программы должен стоять оператор построения соответствующей фигуры, но строиться эта фигура должна цветом фона (например, 0 – если построение происходит на фоне, задаваемой программой по умолчанию, т.е. чёрным), либо должна стоять команда очистки экрана – CLS.
Изобразить движущийся вниз прямоугольник (падающий кирпич)
В данной программе вниз будет перемещаться закрашенный прямоугольник. Так как осуществляется перемещение вниз, то у прямоугольника будут изменяться координаты Y, координаты Х будут оставаться неизменными
SCREEN 12
REM “Падающий кирпич”
FOR Y =1 TO 400 STEP 0.5
LINE ( 300, Y)- (450, Y+40), 6, B
LINE ( 300, Y)- (450, Y+40), 0, B
NEXT Y
6. Закрепление новой темы Составление программы
Составить программу к задаче: груз на платформе поднимается вверх. Затем платформа останавливается и груз перемещается влево (самостоятельная работа учащихся)
Рисунок 5
Пример программы:
SCREEN 12
LINE (150, 300)- (450, 440), 7, BF
FOR y = 440 TO 320 STEP -.1
LINE (451, y)- (500, y - 20), 6, BF
CIRCLE (475, y - 40), 20, 2
PAINT (475, y - 40), 2
LINE (451, y)- (500, y - 20), 0, BF
CIRCLE (475, y - 40), 20, 0
PAINT (475, y - 40), 0
NEXT y
LINE (451, 320)- (500, 300), 6, BF
FOR x = 475 TO 160 STEP -.1
CIRCLE (x, 275), 20, 2
PAINT (x, 275), 2
CIRCLE (x, 275), 20, 0
PAINT (x, 275), 0
NEXT x
CIRCLE (160, 275), 20, 2
PAINT (160, 275), 2
7. Домашнее задание Составить программу с элементами мультипликации (например, летящая стрела)
8. Итог урока Обобщение пройденного материала, выставление оценок.