Графические процедуры в Бейсике

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

Классы: 8, 9

Ключевые слова: QBasic, графические процедуры


Цель: изучить графические процедуры в Бейсике и применить их для вывода анимационной картинки по типу экранной заставки.

Задачи:

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

Тип урока: комбинированный.

Методы обучения: лекция, самостоятельная работа на компьютере.

ТСО: компьютер, программа QBasic со справочной системой Qbasic.hlp.

План урока

  • Организационный момент – 2 мин.
  • Объяснение нового материала совместно с работой на компьютере –  34мин.
  • Подведение итогов и выставление оценок – 2 мин.
  • Домашнее задание – 2 мин.

ХОД УРОКА

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

2. Объяснение нового материала совместно с работой на компьютере:

Лекция: Экранные заставки это динамические изображения, воспроизведение которых включается автоматически при отсутствии в течение заданного времени событий, вызванных пользователем. Первоначальное назначение заставок состояло в том, чтобы снизить угрозу «выгорания люминофора» на тех участках экрана, которые подвержены особо длительному стационарному воздействию электронного луча. Результатом этого эффекта было образование бурых пятен в местах длительного воздействия луча.
Современным мониторам эффект «выгорания люминофора» не грозит, но экранные заставки продолжают использовать как средство сокрытия экранной информации от посторонних наблюдателей в период отсутствия владельца компьютера на рабочем месте.
Заставки в основном используют вывод простых геометрических фигур с анимацией. Сегодня мы попробуем смоделировать работу заставки, используя графические процедуры в Бейсике.
Обычно вывод происходит текстовой информации. А нам нужен вывод графической информации (в пикселах). Графический режим характеризуется разрешением (количество отображаемых пикселей на дюйм), количеством цветов и количеством видеостраниц (при работе с анимацией).
А теперь перейдем к самостоятельной работе за компьютером: будем последовательно находить информацию о графических процедурах, используя справочную систему Qbasic (используется информация из русифицированного файла справки Qbasic.hlp). Для этого в среде Qbasic выберите пункт меню Help (Помощь) – > Index (Предметный указатель), или нажмите сочетание клавиш Alt+F1. Затем будем выполнять задания по найденному материалу. По окончании работы вы должны получить программу, имитирующую работу экранной заставки.

1. Для смены режима с текстового на графический используют процедуру SCREEN. Откройте предметный указатель, найдите справку о процедуре SCREEN и о режимах экрана (см. Приложение 1).

Задание для самостоятельной работы:

Какой номер соответствует текстовому, а какой графическому режиму?
Определите, какой графический режим поддерживает:

    1. максимальное (минимальное) количество точек (пикселей);
    2. наибольшее количество видеостраниц;
    3. наибольшее количество цветов.

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.