Цель: изучить графические процедуры в Бейсике и применить их для вывода анимационной картинки по типу экранной заставки.
Задачи:
- обобщить знания о графическом представлении информации на компьютере на примере экранной заставки;
- получить новые знания о выводе графической информации с помощью процедур языка программирования Бейсик;
- применить знания о циклических алгоритмах и командах в практической работе;
- освоить исследовательскую, самостоятельную работу за компьютером для получения новых знаний с использованием справочной системы Бейсик;
- развить творческие возможности и эстетические вкусы учеников при работе над своей программой.
Тип урока: комбинированный.
Методы обучения: лекция, самостоятельная работа на компьютере.
ТСО: компьютер, программа QBasic со справочной системой Qbasic.hlp.
План урока
- Организационный момент – 2 мин.
- Объяснение нового материала совместно с работой на компьютере – 34мин.
- Подведение итогов и выставление оценок – 2 мин.
- Домашнее задание – 2 мин.
ХОД УРОКА
1. Организационный момент: опрос присутствующих, объявление темы, целей и задач на урок.
2. Объяснение нового материала совместно с работой на компьютере:
Лекция: Экранные заставки — это
динамические изображения, воспроизведение
которых включается автоматически при отсутствии
в течение заданного времени событий, вызванных
пользователем. Первоначальное назначение
заставок состояло в том, чтобы снизить угрозу
«выгорания люминофора» на тех участках экрана,
которые подвержены особо длительному
стационарному воздействию электронного луча.
Результатом этого эффекта было образование
бурых пятен в местах длительного воздействия
луча.
Современным мониторам эффект «выгорания
люминофора» не грозит, но экранные заставки
продолжают использовать как средство сокрытия
экранной информации от посторонних наблюдателей
в период отсутствия владельца компьютера на
рабочем месте.
Заставки в основном используют вывод простых
геометрических фигур с анимацией. Сегодня мы
попробуем смоделировать работу заставки,
используя графические процедуры в Бейсике.
Обычно вывод происходит текстовой информации. А
нам нужен вывод графической информации (в
пикселах). Графический режим характеризуется
разрешением (количество отображаемых пикселей
на дюйм), количеством цветов и количеством
видеостраниц (при работе с анимацией).
А теперь перейдем к самостоятельной работе за
компьютером: будем последовательно находить
информацию о графических процедурах, используя
справочную систему Qbasic (используется информация
из русифицированного файла справки Qbasic.hlp). Для
этого в среде Qbasic выберите пункт меню Help (Помощь)
– > Index (Предметный указатель), или нажмите
сочетание клавиш Alt+F1. Затем будем выполнять
задания по найденному материалу. По окончании
работы вы должны получить программу, имитирующую
работу экранной заставки.
1. Для смены режима с текстового на графический используют процедуру SCREEN. Откройте предметный указатель, найдите справку о процедуре SCREEN и о режимах экрана (см. Приложение 1).
Задание для самостоятельной работы:
Какой номер соответствует текстовому, а какой
графическому режиму?
Определите, какой графический режим
поддерживает:
- максимальное (минимальное) количество точек (пикселей);
- наибольшее количество видеостраниц;
- наибольшее количество цветов.
2. Для отображения пикселя на экране с заданным цветом используют процедуру PSET. Найдите справку об этой функции в предметном указателе (см. Приложение 1).
Задание для самостоятельной работы:
Определите такой режим графического экрана, при котором достаточно четко видна точка, которая может отображаться различным цветом. Дайте названия цветам под номерами от 0 до 15. Найдите в справке атрибуты и значения цвета. Сравните с вашими значениями.
3. Для отображения прямой линии используют процедуру LINE. Найдите справку об этой функции в предметном указателе (см. Приложение 1).
Задание для самостоятельной работы:
- Нарисуйте линию, которая в заданном графическом режиме проведет диагональ на экране. ( SCREEN 12: LINE (0,0)– (640,480) )
- Как построить прямоугольник? (LINE (X1,Y1)– (X2– Y2), C, B)
- Как записать процедуру LINE для отображения закрашиваемого прямоугольника? (LINE (X1,Y1)– (X2– Y2), C, BF)
- Напишите процедуры LINE так, чтобы прямоугольники отображались разным цветом (от 15 до 0) и размеры каждого следующего прямоугольника уменьшались, равномерно отдаляясь от краев предыдущего прямоугольника (первый прямоугольник – от краев экрана).
- Как оптимизировать программу, чтобы записать наименьшее количество операторов? (с помощью оператора цикла).
Решение ученика:
SCREEN 12
X1=0: Y1=0: X2=640: Y2=480
FOR I=15 TO 0 STEP –1
X1=X1+10 : Y1=Y1+10
X2=X2– 10 : Y2=Y2– 10
LINE (X1,Y1)– (X2,Y2), I, BF
NEXT I
4. Для вставки паузы используют процедуру SLEEP. Найдите справку об этой функции в предметном указателе (см. Приложение 1).
Задание для самостоятельной работы:
- Вставьте этот оператор в программу после процедуры рисования прямоугольника.
Решение ученика:
SCREEN 12
X1=0: Y1=0: X2=640: Y2=480
FOR I=15 TO 0 STEP –1
X1=X1+10 : Y1=Y1+10
X2=X2– 10 : Y2=Y2– 10
LINE (X1,Y1)– (X2,Y2), I, BF
SLEEP 1
NEXT I
5. Для отображения окружности используют процедуру CIRCLE. Найдите справку об этой функции в предметном указателе (см. Приложение 1).
Задание для самостоятельной работы:
- Добавьте в вашу программу процедуру вывода окружности вместо вывода прямоугольника.
- Как нарисовать эллипс? (используя коэффициент сжатия, если < 1, то вытянут по оси Х, если >1, то по оси У)
- Почему сделать заливку внутри окружности с помощью процедуры CIRCLE не возможно? (т.к. процедура рисования окружности не имеет четких данных о своей границе)
Решение ученика:
SCREEN 12
X0=320: Y0=240
X1=0: X2=640
FOR I=15 TO 0 STEP –1
X1=X1+10 : X2=X2– 10
R=(X2– X1)\2
CIRCLE (X0,Y0), R, I, , , 0.8
SLEEP 1
NEXT I
6. Для заливки выделенной области используют процедуру PAINT. Найдите справку об этой функции в предметном указателе (см. Приложение 1).
Задание для самостоятельной работы:
- Добавьте в вашу программу процедуру вывода цветного круга.
- Какой параметр в процедуре PAINT отвечает за цвет заливки, а какой за цвет границы? (первым после координаты – цвет заливки, вторым – цвет границы)
- Что означает координата точки в процедуре PAINT? (точку, от которой будет вестись поиск цвета границы, и пока такая точка не будет найдена, все точки будут изменять цвет на цвет заливки)
Решение ученика:
SCREEN 12
X0=320: Y0=240
X1=0: X2=640
FOR I=15 TO 0 STEP –1
X1=X1+10 : X2=X2– 10
R=(X2– X1)\2
CIRCLE (X0,Y0), R, I, , , 0.7
PAINT (X0,Y0), I, I
SLEEP 1
NEXT I
3. Подведение итогов и выставление оценок: мы смоделировали работу заставки, используя графические процедуры в Бейсике: SCREEN, PSET, LINE, CIRCLE, PAINT. Добавили элемент анимации с помощью процедуры SLEEP.
Подведем итоги и оценим вашу работу:
- на «отлично» – программа использует все изученные операторы и цикл, ответил на все дополнительные вопросы;
- на «хорошо» – программа использует все изученные операторы без цикла или использует операторы графики без оператора Sleep, но с циклом, ответил частично на дополнительные вопросы;
- на «удовлетворительно» – программа использует операторы графики без оператора PAINT и SLEEP и без цикла, на некоторые дополнительные вопросы не дан правильный ответ;
- на «неудовлетворительно» – программа использует только один из операторов графики и без цикла, на дополнительные вопросы не даны правильные ответы;
4. Домашнее задание: придумать и реализовать программу рисования геометрических фигур, используя операторы графики и оператор SLEEP.