Скачиваний:
109
Добавлен:
21.01.2014
Размер:
2.38 Mб
Скачать

4. Контрольные вопросы

                  1. Назначение и синтакис операторов работы с файлами ?

Вопросы по процедуре выполнения индивидуального задания.

5. Библиографический список

                  1. Бобровский С. Программирование на языке QBASIC для школьников и студентов. — М.: Десс; Инфорком-Пресс, 1999. - 208 с.

                  1. Зельднер Г.А. Программируем на языке QuickBASIC 4.5. - М: ABF, 1996. - 432 с.

                  1. Введение в программирование на языке Microsoft BASIC: Учебное пособие / Ю.Я. Максимов, С.В. Осипов, А.В. Потемкин, Щ.С. Симоненков. - М.: ”Диалог-МИФИ”,1991. - 176 с.

Министерство образования

Российской Федерации

Тульский государственный университет

Кафедра “Инструментальные и метрологические системы”

Информатика

ЛАБОРАТОРНАЯ РАБОТА 20

Построение графических примитивов

для студентов очного обучения

Тула 2000 г.

1. Цель и содержание работы

Целью работы является изучение графических возможностей языка програмирования QuickBASIC.

Полученные знания и навыки необходимы для выполнения других лабораторных работ, а также практической деятельности.

2. Порядок выполнения работы

                  1. Изучить теоретическую часть.

                  1. Получить задание у преподавателя.

                  1. Выполнить задание.

                  1. Оформить отчет.

                  1. Защитить работу.

3. Теоретическая часть

Операторы языка

CLS

Оператор

Очищает экран.

CLS [{0 | 1 | 2}]

  • CLS - очищает либо текстовую, либо графическую области просмотра. Если была установлена графическая область просмотра (с помощью VIEW), то очищает только графическую область просмотра. В противном случае, очищает текстовую область просмотра или весь экран;

  • CLS 0 - полностью очищает экран, как текст, так и графику;

  • CLS 1 - очищает графическую область просмотра или весь экран, если графическая область просмотра не была установлена;

  • CLS 2 - очищает текстовую область просмотра.

  1. ... ‘ Установки режима экрана, графического и текстового экранов.

Count =0

DO

‘Рисуются окружности случайным образом

CIRCLE (50, 40), INT((35-4)-RND + 5), (Count MOD 4)

‘ Стирание графического окна через 20 окружностей

IF (Count MOD 20) = 0 THEN CLS 1

PRINT “Окружности”;

‘Стирание текстового окна через 30 сообщений

IF (Count MOD 30) = 0 THEN CLS 2

Count = Count + 1

LOOP UNTIL INKEY$ <> “”

COLOR

Оператор

Устанавливает цвета экрана.

COLOR [основной%] [,[фоновый%] [,рамка%]] ‘Режим экрана 0 (только текст)

COLOR [фоновый%] [,палитра%] ‘Режим экрана 1

COLOR [основной%] ‘Режимы экрана 4, 12, 13

COLOR [основной%] [,фоновый&] ‘Режимы экрана 7-10

  • основной% - число, устанавливающее цвет переднего плана экрана. В режиме экрана 0 основной% - это атрибут цвета, устанавливающий цвет текста. В других режимах экрана основной% - это атрибут цвета или 4-битовое значение (только в режиме 4), устанавливающие цвет текста и линий (в пределах 0-31, где 16-31 - мерцающие). Мерцающий вариант цвета = основной цвет + 16;

  • фоновый% - число, устанавливающее фоновый цвет экрана. В режиме экрана 0, фоновый& фоновый% - это атрибут цвета. В режиме экрана 1, фоновый% - это 4-битовое значение. В режимах экрана 7-10, цвет рамки не задается, фоновый& - это значение цвета;

  • рамка% - атрибут цвета, устанавливающий цвет границы экрана;

  • палитра% - число (0 или 1), указывающее какую из двух групп атрибутов цвета нужно использовать.

Номера экранных цветов

0

Черный

4

Красный

8

Серый

12

Ярко-красный

1

Голубой

5

Розовый

9

Ярко-голубой

13

Ярко-розовый

2

Зеленый

6

Коричневый

10

Ярко-зеленый

14

Желтый

3

Бирюзовый

7

Белый

11

Ярко-бирюзовый

15

Ярко-белый

  • Допустимые атрибуты и значения цвета зависят от графического адаптера и режима экрана, установленного последним оператором SCREEN.

  • Если в системе есть EGA, VGA или MCGA адаптер, используйте оператор PALETTE для изменения назначений цвета для атрибутов цвета.

  • Если основной и фоновый цвета одинаковы, выводимые символы становятся невыдимыми. По умолчанию фоновый цвет - черный (0) для всех конфигураций дисплейных адаптеров и всех экранных режимов.

  1. 'Для выполнения этого примера нужен цветной графический адаптер.

SCREEN 7

FOR i% = 0 TO 15

COLOR i%

PRINT i%

NEXT i%

SCREEN

Оператор

Устанавливает спецификацию экрана.

SCREEN режим% [,[цвет%]] [, [стр_вывода%]] [, [стр_экрана%]]

  • режим% - целое выражение, устанавливает режим экрана;

  • цвет% - определяет, будет ли информация выводится в цвете. Числовое выражение в пределах 0-255:

  • если цвет% = 0 - информация выдается только в черно-белом виде;

  • если цвет%  0 - цвет сохраняется;

  • значение аргумента цвет% инвертируется в режиме 0;

  • в режимах 2 и выше аргумент игнорируется;

  • стр_вывода% - числовое выражение, номер активной экранной страницы, на которую выводится текст или графика;

  • стр_экрана% - числовое выражение, номер текущей экранной страницы.

  • Здесь приведена обобщенная информация по режимам экрана, задаваемым оператором SCREEN для видеоадаптеров:

  • IBM Color Grafics адаптер (GGA) , IBM Enhanced Grafics адаптер (EGA)

  • IBM Video Grafics Array (VGA) , IBM Multicolor Grafics Array (MGGA)

  • Hercules Graphics Card (HGC) , Graphics Card Plus (GCP)

  1. SCREEN 0: Текстовый режим

Адаптеры: MDPA, CGA,

EGA,

VGA

  • 40 x 25, 40 x 43, 40 x 50, 80 x 25, 80 x 43, 80 x 50 - формат текста;

  • 8 x 8 - формат символа(GGA) , 8 x 14, 9 x 14, 9 x 16 (EGA или VGA);

  • 16 цветов назначаются 2 атрибутам (MDPA);

  • 16 цветов назначаются 16 атрибутам (CGA, EGA c 64K);

  • 64 цвета назначаются 16 атрибутам (EGA,VGA);

  • В зависимости от разрешения текста и адаптера, 8 страниц видеопамяти (0-7), 4 страницы (0-3), 2 страницы (0-1) или 1 страница (0).

  1. SCREEN 1: 320 x 200 графический режим Адаптеры:

CGA, EGA, VGA, MDPA

  • 40 x 25 - формат текста, 8 x 8 точек - формат символа;

  • 16 фоновых цветов и одна из двух 3 цветовых палитр для основного цвета (CGA);

  • 16 цветов назначаются 4 атрибутам (EGA , VGA);

  • 1 страница видеопамяти (0).

  1. SCREEN 2: 640 x 200 графический

Адаптеры:

CGA, EGA, VGA, MCGA

  • 80 x 25 - формат текста, 8 x 8 точек - формат символа;

  • 16 цветов назначаются 2 атрибутам (EGA VGA);

  • 1 страница видеопамяти (0).

  1. SCREEN 3: 720 x 348 графический

Адаптер Hercules, и монохромный монитор

  • 80 x 25 - формат текста, 9 x 14 точек - формат символа;

  • Обычно 2 страницы видеопамяти (0-1); 1 страница (0), если установлен второй цветной видеоадаптер;

  • Оператор PALETTE не поддерживается.

  1. SCREEN 4:

640 x 400 графический режим

Адаптер Hercules, и монохромный монитор

  • Поддерживает персональные компьютеры фирмы Olivetti M24, M240, M28, M280, M380, M380/C и M380/T, AT&T 6300;

  • 80 x 25 - формат текста, 8 x 16 точек - формат символа;

  • 1 из 16 цветов присвоен цвету переднего плана (выбранный оператором COLOR); фон - неизменно черный;

  • 1 страница видеопамяти (0);

  • Оператор PALETTE не поддерживается.

  1. SCREEN 7: 320 x 200 графический

Адаптеры:

EGA , VGA

  • 40 x 25 - формат текста, 8 x 8 точек - формат символа;

  • Присвоение 16 цветов 16 атрибутам;

  • При 64K памяти EGA адаптера - 2 страницы видеопамяти (0-1); в других случаях - 8 страниц (0-7).

  1. SCREEN 8: 640 x 200 графический

Адаптеры:

EGA , VGA

  • 80 x 25 - формат текста, 8 x 8 точек - формат символа;

  • Присвоение 16 цветов 16 атрибутам;

  • При 64K памяти EGA адаптера - 1 страница видеопамяти (0); в других случаях, 4 страницы (0-3).

  1. SCREEN 9: 640 x 350 графический режим

Адаптеры:

EGA , VGA

  • 80 x 25 или 80 x 43 - формат текста, 8 x 14 или 8 x 8 - формат символа;

  • 16 цветов назначаются 4 атрибутам (память адаптера 64K) или 64 цвета назначаются 16 атрибутам (память адаптера более 64K);

  • При 64K памяти EGA адаптера - 1 страница видеопамяти (0); в других случаях, 2 страницы (0-1).

  1. SCREEN 10: 640 x 350 графический режим, Адаптеры:

EGA , VGA

  • Только монохромные мониторы;

  • 80 x 25 или 80 x 43 - формат текста, 8 x 14 точек или 8 x 8 точек - формат символа;

  • Вплоть до 9 оттенков серого назначаются 4 атрибутам;

  • 2 страницы видеопамяти (0-1), нужен адаптер с 256K памяти.

  1. SCREEN 11:

640 x 480 графический Адаптеры: VGA, MCGA

  • 80 x 30 или 80 x 60 - формат текста, 8 x 16 точек или 8 x 8 точек - формат символа;

  • Присвоение вплоть до 256K цветов 2 атрибутам;

  • 1 страница видеопамяти (0).

  1. SCREEN 12:

640 x 480 графический

Адаптер VGA

  • 80 x 30 или 80 x 60 - формат текста, 8 x 16 или 8 x 8 - формат символа

  • Присвоение вплоть до 256K цветов 16 атрибутам

  • 1 страница видеопамяти (0)

  1. SCREEN 13:

320 x 200 графический

Адаптеры: VGA, MCGA

  • 40 x 25 - формат текста, 8 x 8 точек - формат символа

  • Присвоение вплоть до 256K цветов 256 атрибутам

  • 1 страница видеопамяти (0)

  1. 'Для выполнения этого примера нужен цветной графический адаптер.

SCREEN 1 '320 x 200

LINE (110, 70)-(190, 120), , B

LINE (0, 0)-(320, 200), 3, , &HFF00

SCREEN

Функция

Возвращает ASCII значение или атрибут цвета символа, находящегося в

указанном месте экрана.

SCREEN (строка%, столбец% [, флаг_цвета])

  • строка% - координата строки символа, целое выражение без знака;

  • столбец% - координата столбца символа целое выражение без знака;

  • флаг_цвета - целое выражение. Если флаг_цвета  0 возвращается значение цвета, в противном случае (флаг_цвета = 0) - ASCII-код символа, в указанном месте.

  • Значение цвета в текстовом режиме экрана кодируется: основной + фоновый * 16

  1. CLS

PRINT "Кафедра"

PRINT "Код ASCII символа в позиции 1,1 "; SCREEN(1, 1)

PRINT "IMS"

PRINT "Код ASCII символа в позиции 3,1 "; SCREEN(3, 1)

PALETTE

PALETTE USING

Операторы

Изменяют установки атрибутов цвета в текущем режиме экрана. PALETTE и PALETTE USING работают только в системах с адаптерами EGA, VGA, MCGA.

PALETTE [атрибут%, цвет&]

PALETTE USING имя_массива# [(индекс%)]

  • атрибут% - изменяемый атрибут палитры (0-15);

  • цвет& - значение цвета, присвоенное атрибуту. Должен быть длииным целым выражением для VGA и MCGA в режимах экрана 11 - 13. Целое или дробное целое выражение используется с EGA;

  • имя_массива# - массив, содержащий номера цветов, присваиваемых атрибутам текущего режима экрана. Адаптеры VGA и MCGA требуют длинного целого массива в режимах 11-13. EGA требует целый или длинный целый массив;

  • индекс% - индекс первого элемента массива, который присваивается атрибуту.

  • Допустимые атрибуты и значения цвета зависят от графического адаптера и режима экрана, установленного последним оператором SCREEN.

  • Все операторы BASIC такие как СIRCLE, COLOR, DRAW, LINE используют атрибуты цвета, а не действительные значения экранных цветов. После определения в программе режима экрана (SCREEN) эти атрибуты устанавливаются по умолчанию, причем из-за наличия в адаптерах EGA, VGA, MCGA большего чем число атрибутов количества цветов, они могут быть различны. При выполнении PALETTE с аргументами, адаптер устанавливает дисплейный цвет, заданный оператором, вместо атрибута, используемого по умолчанию. Изменеие параметра атрибута немедленно приведет к изменению цвета текущего рисунка на экране.

  • Используя USING, можно изменить всю палитру одним PALETTE. Каждый атрибут в палитре получает соответствующий цвет из массива#, начиная с элемента указанного индексом%.

  • VGA использует особый способ формирования значени цвета т.е.:

Для цветного монитора

цвет = 65536 * интенсивн_синего + 256 * интенсивн_зеленого + интенсивн_красного

где интен - интенсивность, от низкой (0) до высокой (63).

Для монохромного монитора в оттенках серого

оттенок= 11%интенсивн_синего + 59%интенсивн_зеленого + 30%интенсивн_красного.

'Для выполнения этого примера нужен цветной графический адаптер.

PALETTE 0, 1

SCREEN 1

FOR i% = 0 TO 3: a%(i%) = i%: NEXT i%

LINE (138, 35)-(288, 165), 3, BF

LINE (20, 10)-(160, 100), 2, BF

DO

FOR i% = 0 TO 3

a%(i%) = (a%(i%) + 1) MOD 16

NEXT i%

PALETTE USING a%(0)

LOOP WHILE INKEY$ = ""

PCOPY

Оператор

Копирует одну страницу видеопамяти в другую.

PCOPY источник, приемник

  • источник - целое числовое выражение от 0 до n, указывающее на сегмент видеопамяти, содержащий экранную страницу. Значение n зависит от размера видеопамяти и режима экрана;

  • приемник - целое числовое выражение от 0 до n, указывающее на сегмент видеопамяти, куда помещается копия.

  • Количество экранных страниц зависит от текущего режима экрана и типа видеодисплея.

  1. PCOPY 1, 3

VIEW

Оператор

Определяет размер и положение области просмотра, границы виртуального экрана графического вывода.

VIEW [ [SCREEN] (x1! , y1!) - (x2! , y2!) [, [цвет%] [, рамка%] ] ]

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

  • (х1!, у1!)-(x2!, y2!) - координаты диагонали противоположных углов виртуального окна.Числовые значения координат верхнего левого и нижнего правого углов прямоугольника;

  • цвет% - атрибут цвета, устанавливающий заполняющий цвет окна. Если цвет опущен, окно не закрашивается;

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

  • Если все аргументы опущены, область просмотра - весь экран.

  • Допустимые атрибуты цвета зависят от графического адаптера и режима экрана, установленного последним оператором SCREEN.

  1. 'Для выполнения этого примера нужен цветной графический адаптер.

SCREEN 1

VIEW (10, 10)-(300, 180), , 1

LOCATE 1, 11: PRINT "Большая область просмотра графики";

VIEW SCREEN (80, 80)-(200, 125), , 1

LOCATE 11, 11: PRINT "Маленькая область просмотра графики";

VIEW PRINT

Оператор

Устанавливает на экране границы окна просмотра текста.

VIEW PRINT [верх% TO низ%]

  • верх% - номер верхней строки области просмотра текста;

  • низ% - номер нижней строки области просмотра текста.

  • Если были опущены аргументы верх% и низ%, то VIEW PRINT отводит весь экран под область просмотра текста.

  • Диапазон для верх% и низ% зависит от режима экрана и наличия ключа /Н при запуске cреды QB.

  1. VIEW PRINT 12 TO 17

FOR i% = 1 TO 100 'Вывод будет прокручиваться между 12 и 17 строкой

PRINT i%

NEXT i%

WINDOW

Оператор

Определяет логическое пространство для текущего графического окна вывода.

WINDOW [ [SCREEN] (x1!, y1!) - (x2!, y2!) ]

  • SCREEN- инвертирует обычное направление декартовых координат Y на экране так, что значения Y увеличиваются сверху вниз на экране;

  • (x1!, y1!) - логические координаты, соответствующие координатам верхнего левого окна вывода;

  • (х2!, y2!) - логические координаты, соответствующие координатам нижнего правого окна вывода.

  • Используйте оператор WINDOW для задания своей собственной системы координат в окне вывода без задания абсолютных координат. Координаты всех точек определяются как относительные к данному окну вывода.

  • WINDOW без аргументов выключает логическую систему координат.

  • Используйте оператор VIEW для изменения размера области просмотра.

  1. 'Для выполнения этого примера нужен цветовой графический адаптер.

SCREEN 1

FOR i% = 1 TO 10 STEP 2

WINDOW (-160 / i%, -100 / i%)-(160 / i%, 100 / i%)

CIRCLE (0, 0), 10

NEXT i%

CIRCLE

Оператор

Рисует окружности и эллипсы с определенными центром и радиусом.

CIRCLE [STEP] (x!,y!), радиус![, [цвет%] [, [старт!] [, [конец!] [, аспект!]]]]

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

  • (х!,y!) - экранные координаты центра окружности или эллипса;

  • радиус! - радиус окружности или эллипса в единицах текущей системы координат, определенной последними операторами SCREEN, VIEW и WINDOW;

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

  • старт! - начальный угол дуги в радианах в пределах [-2, 2], по умолчанию - 0;

  • конец! - конечный угол дуги в радианах в пределах [-2, 2], по умолчанию - 2;

  • аспект! - отношение длины оси У к длине оси Х, используемое при изображении эллипсов. Вычисляется таким образом: 4*(Xкоординату точки / Yкоординату точки) / 3.

  • Для перевода градусов в радианы умножьте значение в градусах на (PI / 180).

  1. 'Нужен графический видеоадаптер.

СONST PI = 3.141593

SCREEN 2

CIRCLE (320, 100), 200 ‘Рисуется круг с эллипсом внутри.

CIRCLE STEP (0, 0), 200, , , , 5/25

LINE

Оператор

Рисует на экране линию или прямоугольник.

LINE [ [STEP](x1!, y1!)] - [STEP](x2!, y2!) [, [цвет%] [,[B | BF] [, стиль%] ] ]

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

  • (х1!, y1!), - (x2!, y2!) - координаты начала и конца линии на экране;

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

  • B - рисует прямоугольник с координатами верхнего левого(х1!, y1!) и нижнего правого (x2!, y2!) углов;

  • BF - рисует заполненный указанным цветом прямоугольник;

  • стиль% -16-битовая маска, биты которой устанавливают будут ли рисоваться точки растра. Используется для изображения прерывистых и пунктирных линий.

  • Стиль% не влияет на закрашенные прямоугольники.

  • Совокупность точек линий выходящих за пределы текущего экрана - невидимы.

  1. 'Нужен цветной графический адаптер.

SCREEN 1

LINE (110, 70)-(190, 120), , B

LINE (0, 0)-(320, 200), 3, , &HFF00

‘Рисуется прямоугольник

‘Рисуется штриховая линия

PRESET

PSET

Операторы

Рисуют заданную точку на экране.

PRESET [STEP] (x!,y!) [, цвет%]

PSET [STEP] (x!,y!) [,цвет %]

  • STEP - указывает, что x! и y! заданы как смещения относительно текущего графического положения курсора;

  • (x!,y!) - координаты точки растра;

  • цвет % - атрибут цвета, устанавливаемый для точки растра. Если цвет % опущен, PRESET использует текущий цвет фона, а PSET использует текущий цвет переднего плана.

  • Доступные атрибуты цвета зависят от графического видеоадаптера и режима экрана. Значения координат зависят от графического видеоадаптера, режима экрана и последних установок в операторах VIEW и WINDOW.

  1. 'Нужен графический видеоадаптер.

SCREEN 1

FOR i% = 0 TO 320

PSET (i%, 100)

FOR delay% = 1 TO 100: NEXT delay%

PRESET (i%, 100)

NEXT i%