Как сделать треугольник в qbasic

Обновлено: 06.07.2024

Среда программирования QBasic.
Бейсик (Basic) - диалоговый учебный язык программирования для персональных компьютеров. На современных компьютерах используется следующие версии Basic: GWBasic, QBasic 4.5, Turbo Basic для DOS, Visual Basic 3.0-6.0 для Windows. Здесь мы рассмотрим QBasic 4.5.


QBasic входит в состав операционной системы MS-DOS 6.0-6.22. Есть русифицированная версия QBasic.

Для запуска QBasic надо или найти файл qbasic.exe и Enter, или ввести в командную строку qbasic и Enter. Меню - Alt.

Запуск программы Shift-F5.

Получение помощи Shift-F1.

Создать файл: Меню Файл, Сохранить Как, выбрать каталог, задать имя файла, ОК. Файл получит расширение bas.

Сохранить файл: Меню Файл, Сохранить.

Открыть файл, то есть считать его с диска: Меню Файл, Открыть.

Выход из QBasic: Меню Файл, Выход.

Копирование выделенного фрагмента программы в буфер (Edit,Copy) - Ctrl-Insert,

Вставка фрагмента из буфера (Edit,Paste) - Shift-Insert,

Вырезать (Edit,Cut) - Shift-Delete.

Удобно выделять и делать все указанные операции с помощью мыши. Можно выделенный фрагмент программы вставить в другой файл, если после выделения открыть его.

В QBasic 4.5 можно откомпилировать текстовый bas-файл, превратив его в двоичный exe-файл, который можно использовать отдельно, то есть без среды программирования QBasic.


Переменная в программе
Переменная - это область в памяти компьютера, где хранится некоторое значение. Каждая переменная имеет имя, значение и тип.

Имя переменной обозначается английской буквой, после которой может быть цифра, причем первой стоит буква, например: x, y, z, A1, B2. Имя переменной служит для обозначения некоторой величины в программе, которая при выполнении программы может иметь какое-либо значение, но может быть и не определена. Пример задания часто употребляемой константы: pi=3.14159.

Типы переменых: целая, вещественная, логическая, символьная, строковая и др. Если в переменной хранится число, то это числовая переменная, если в переменной хранится слово или фраза, то это строковая (символьная) переменная. В QBasic строковая переменная обозначается a$, b$ (в конце имени стоит знак доллара $). Содержимое хранится в переменной, до тех пор, пока оно не будет специально изменено.

Операция предачи новых данных в переменную называется присваиванием и обозначается в QBasic знаком " +" и "-" - сложение и вычитание;

"*" и "/" - умножение и деление;

"^" - возведение в любую степень;

(x+3.14)/(a+b) - используются только круглые скобки и десятичная точка вместо запятой.

Пример: S=Vo*t+g*t^2/2

В QBasic применяются следующие встроенные функции:

SQR(X) - извлечение квадратного корня;

ABS(X) - модуль (абсолютная величина) числа;

SIN(X); COS(X); TAN(X) - тригонометрические функции синус, косинус и тангенс угла в радианах;

ATN(X) - арктангенс числа в радианах;

INT(X) - округление числа (дробная часть числа отбрасывается);

RND(X) - случайное число;

z = y MOD x - целый остаток от деления y на x.

LOG(X) - логарифмическая функция (натуральный логарифм по основанию e=2.71828);

EXP(X) - показательная (экспоненциальная) функция.


Операции ввода-вывода информации
Для вывода (печати) информации на экран применяется оператор PRINT. Пример:

PRINT X - вывод на экран значения числа X.

PRINT "Скорость тела равна: V="; V; "м/с" - выводимый на экран текст указывается в кавычках. Вместо знака ";" можно ставить знак ",".

Просто оператор PRINT без текста и знаков даёт пустую строку на экране.

Если при работе в среде QBasic 4.5 вместо слова PRINT ставить знак вопроса "?", а затем нажать Enter, то слово PRINT само появится на экране. Это упрощает работу программиста.

Ввод данных с клавиатуры осуществляется с помощью оператора INPUT

Пример: INPUT X - ввод числа X. На экране появится знак "?" и компьютер ждёт ввода переменной Х (это приглашение ввести число).

INPUT "Введите число Х="; X - можно вводить в кавычках подсказку, она будет выводиться на экран. После подсказки можно ставить знак "," вместо знака ";", но тогда знака вопроса "?" на экране не будет, а вместо него в качестве приглашения будет мигать курсор.

Пример 1: Вычислить площадь треугольника по формуле Герона.

CLS

'Определите площадь треугольника по формуле Герона.

INPUT "Введите величину стороны a: a Введите величину стороны b: b Введите величину стороны c: c Ответ: площадь треугольника равна: S Введите свою фамилию: ", f$

INPUT "Введите своё имя: ", i$

INPUT "Введите свой класс: ", k$

PRINT

PRINT f$; " "; i$; ", "; k$

END


Управляющие конструкции QBasic
1. Оператор безусловного перехода GOTO N, где N-метка. В качестве N можно взять любое число, не обязательно совпадающее с номером строки, так как в QBasic 4.5 строки можно не нумеровать. Но двух одинаковых меток в одной программе не должно быть. Исполнение программы будет продолжено с той её части, которая начинается с указанной метки.

Пример:

GOTO 10

10 PRINT "Текст"

2. Условный оператор IF. THEN. ELSE (Если. Тогда. Иначе):

IF THEN ELSE

Если заданное условие истинно, выполняется список операторов, стоящий после THEN, в противном случае выполняется список операторов, стоящий после ELSE.

Слово ELSE может и отсутствовать. Тогда происходит переход к строке, следующей за оператором IF. THEN.

Условия представляют собой логические соотношения: равенства или неравенства = равно, <> неравно, > больше, = больше или равно, B.

Пример 1: Напечатать на экране текст 20 раз.

CLS

FOR X=1 TO 20

PRINT "С Новым Годом!"

NEXT X

Пример 2: Вычислить сумму n первых членов ряда S=1+1/4+1/9+. +1/n^2

CLS

INPUT "Введите число членов ряда: n Сумма n первых членов ряда равна: S При x=-1, x=6 функция не определена!"

ELSE y = 1 / (x ^ 2 - 5 * x - 6)

PRINT "x="; x, " y При 1 1-эллипс вытянут вдоль малой оси.

Пример: CIRCLE (160, 100), 70, 15, , , 0.5

Пример графики на QBasic: Квадрат, три концентрические окружности и точка. Программа имеет вид:

SCREEN 7

COLOR 14, 8

PRINT "Пример графики на QBasic:"

LINE (100, 50)-(220, 150), 13, B

CIRCLE (160, 100), 20, 11

CIRCLE (160, 100), 30, 12

CIRCLE (160, 100), 40, 14

PSET (160, 100), 15

END


Установка цветов в операторе COLOR QBasic:
Число Цвет

0 Черный

1 Синий

2 Зеленый

3 Голубой

4 Красный

5 Фиолетовый

6 Коричневый

7 Серый

8 Темно-серый

9 Светло-синий

10 Светло-зеленый

11 Светло-голубой

12 Светло-красный

13 Светло-фиолетовый

14 Желтый

15 Белый


Некоторые сочетания цветов в операторе COLOR QBasic:
1) 14, 8 - желтый на темно-сером фоне;

Автор: Соловьёва Екатерина Викторовна, учитель высшей квалификационной категории
Цели и задачи данных уроков:
- приобретение знаний, умений и навыков в создании программ на языке QBASIC;
- развитие самостоятельности и творчества у учащихся;
- развитие логического мышления;
- проявление интереса к работе на компьютере.

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

Существует два возможных режимах работы экрана: текстовом и графическом. Помимо алфавитно-цифрового возможно еще и графическое представление результатов работы программ: построение графиков различных зависимостей, диаграмм, чертежей и т. д.
Оператор SCREEN N позволяет объявить нужный режим экрана. Номер N может меняться от 0 до 13.
В графическом режиме изображение представлено совокупностью отдельных точек – пиксель. В разных графических экранах разная разрешимость.
Например, команда SCREEN 7 задаёт экран разрешимостью 320 х 200 пиксель –самое низкое разрешение, изображение получается грубое. Режим SCREEN 12 имеет разрешение в два раза больше. Но для начала работы стоит выбрать более простой режим SCREEN 7.
Система координат аналогична прямоугольной декартовой. Начало координат находится в левом верхнем углу, это точка с координатой (0, 0). Координаты могут быть только положительными и целочисленными, так как единицей изменения является одна экранная точка.
Графические операторы QBasic позволяют использовать 16 цветов. Цвет задаётся номером, который называется параметром цвета. Например, оператор COLOR C1, C2, где С1 – цвет рисунка, С2 – цвет фона, задаёт цвет фона и цвет рисунка.
Таблица цветов.
№ Цвет
0 Чёрный
1 Голубой
2 Зелёный
3 Бирюзовый
4 Красный
5 Малиновый
6 Коричневый
7 Белый
8 Серый
9 Светло-голубой
10 Светло-зелёный
11 Светло-бирюзовый
12 Светло-красный
13 Светло-малиновый
14 Жёлтый
15 Ярко-белый-

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

Существуют специальные графические операторы, которые не работают в текстовом режиме.
Графический оператор PSET, позволяет изображать точку на экране.
Формат оператора: PSET (X,Y),C ,где Х, Y - координаты точки, С - цвет точки.

Задание1. Нарисовать при помощи оператора PSET (X,Y),C фантастическое созвездие.
Для построения графических изображений наряду со специальными, широко используются и “обычные” операторы. Так как в качестве координат графических операторов допускается употребление переменных, удобно, например, организовать выполнение графических операторов в цикле. Это будет хорошей тренировкой в написании циклических программ. Ниже приведены примеры таких циклических программ.
Задание2. Построить с помощью точек горизонтальную прямую, проходящую через середину экрана.
SCREEN 7
FOR X=0 TO 320
PSET (X,200),2
NEXT X
Задание3. Построить пунктирную линию.
Задание4. Построить закрашенный прямоугольник с помощью точки.
SCREEN 12
FOR I=0 TO 15
FOR X=10 TO 200
FOR Y=10 TO 100
PSET (X,Y),I
NEXT Y,X,I

Знания и умения: Знать каким образом осуществляется построение отрезков, уметь определять координаты концов отрезков.
На этом уроке рассмотрим как осуществляется построение отрезков.
Формат оператора: LINE (X1,Y1)-(X2,Y2),C ,где X1, Y1 - координаты начала отрезка, X2, Y2 - координаты конца отрезка.
Обратить внимание на умение определять координаты концов отрезков.

Задание1 . Построить закрашенный прямоугольник с помощью отрезка.
SCREEN 7
FOR X=10 TO 100
LINE (X,15)-(X,95),2
NEXT X

Задания для самостоятельных работ.
Построение отрезков в цикле
Знания и умения: Знать каким образом реализуется циклический алгоритм, уметь записывать отрезки, у которых периодически изменятся одна из координат.
Полезно использовать оператор LINE в комбинации с оператором цикла для построения так называемых “пучков” лучей.
Задание 1. Написать программу, рисующую такую картинку:


FOR Y=0 TO 200 STEP 10
LINE (0,0)-(320,Y),2
NEXT Y
Задание 2. Составить программы, в результате выполнения которых на экране строятся следующие изображения:




FOR Y=0 TO 200 STEP 10
LINE (0,200)-(200,Y),2
LINE (200,Y)-(320,200),3
NEXT Y

Задание 3. Разбиение плоскости графического экрана на квадраты.
FOR X=0 TO 320 STEP 20
FOR Y=0 TO 200 STEP 20
LINE (X,Y)-(320-X,200-Y),2,B
NEXT Y,X

Знать каким образом осуществляется построение прямоугольников, уметь определять координаты концов отрезков и прямоугольников, закрашивать прямоугольники.

На этом уроке рассмотрим как осуществляется построение прямоугольников.
Формат оператора: LINE (X1,Y1)-(X2,Y2), C, B (BF), где (X1, Y1) и (X2, Y2) - координаты диагонально-противоположных вершин прямоугольника, С – цвет, B, BF –. Ключ В (от слова box – прямоугольник) позволяет рисовать контур прямоугольника, ключ ВF (full box –полный прямоугольник) позволяет закрасить прямоугольник цветом С.
Произвольные замкнутые фигуры можно закрашивать при помощи PAINT(Х, У), С1, С2, где (Х, У) – координаты любой внутренней точки закрашиваемой области, С1 – цвет заливки, С2 – цвет границы области. Закрашиваемая область должна быть ограничена одноцветной, замкнутой линией.
Задание 1. Нарисовать, домик, закрасить его.






Знания и умения: Знать каким образом осуществляется построение окружности, уметь определять координаты центра, величину радиуса.
CIRCLE (X,Y),R,C, где X,Y - координаты центра, R - радиус, С – цвет
Чтобы получить круг, используют оператор PAINT(Х, У), С1, С2, где (Х, У) – координаты любой внутренней точки закрашиваемой области, С1 – цвет заливки, С2 – цвет границы области. Закрашиваемая область должна быть ограничена одноцветной, замкнутой линией.
Задание 1.
А)


Знания и умения: Знать каким образом осуществляется построение окружности, эллипса, уметь определять координаты центров этих графических объектов.
CIRCLE (X,Y),R,C. Е, где X,Y - координаты центра, R - радиус, С - цвет, Е - отношение вертикального и горизонтального радиусов.


Знания и умения: Знать каким образом осуществляется построение окружности, эллипса, дуги, сектора., уметь определять координаты центров этих графических объектов, начало и конец дуги в радианах.
CIRCLE (X,Y),R,C,n1,n2,S
где X,Y - координаты центра, R - радиус, С - цвет, n1,n2 - начало и конец дуги , S - отношение вертикального и горизонтального радиусов. Для того, чтобы нарисовать сектор, n1 и n2 надо брать со знаком минус.
Задания:





Цикл 2 (после 40 строки):
FOR X=-10 TO 10
LINE (X*10+300,198)-(X*10+300,202)
NEXT X

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

Знания и умения: Знать датчик случайных чисел, уметь получить случайное число в любом интервале и использовать эти числа как координаты графических объектов.

Часто применяют датчик случайных чисел в графических программах. Как пример рассмотреть программу “Взрыв”.

Задание1. “Взрыв” из точки с координатой (250,150).
SCREEN 12
FOR I=1 TO 100
X=INT(500*RND)
Y=INT(400*RND)
C=INT(15*RND)
LINE (250,150)-(X,Y)
NEXT I

Задание 2. Написать программу “Звездное небо”.

Задание 3. Отражение луча от края экрана

X=60: Y=20:DX=1: DY=1
FOR I=1 TO 5000
PSET (X,Y),6
IF X=0 OR X=500 THEN DX=-DX
IF Y=0 OR Y=400 THEN DY=-DY
X=X+DX
Y=Y+DY
NEXT I

Задание 4. Написать программу случайного появления окружности на экране (случайный центр окружности и радиус).

Знания и умения: Четко понимать принцип организации движения движения на экране. Уметь инверсировать цвет выводимого изображения при составления динамических программ.

Задание 1. Программа движения отрезка.
FOR X=0 TO 640
LINE (X,100)-(X+10,100),2
LINE (X,100)-(X+10,100),0
NEXT X

Примечание. Отрезок- зеленый (цвет-2), а фон- черный (цвет- 0).

Задание 2. Составить программу движения окружности по вертикали и по горизонтали.

Задание 3. Сделать отражение круга от края экрана.

Знания и умения: Знать графические операторы языка QBASIC, символьные константы и переменные; уметь анализировать состояние клавиатуры.

Для закрепления всего пройденного материала учащиеся создают свою графическую программу, используя и все известные графические операторы.

- на экране появится окно системы помощи QBASIC. Для перемещения по пунктам кадра используют клавиши , стрелки управления курсором, , .

Если в окне текстового редактора подвести курсор под какое-либо служебное слово и нажать, на экране появится раздел алфавитного указателя, поясняющий это слово.

PRINT”Уважаемый (ая) ”;RS$;” ,я думаю, что мы с вами сработаемся”

¨ Набрать текст программы;

¨ Сохранить его на диск с именем prog1;

¨ Запустить программу на выполнение;

¨ Получить справку по оператору INPUT.

Color 1,5

¨ Набрать текст программы;

¨ Сохранить его на диск с именем prog2;

¨ Запустить программу на выполнение;

¨ Внести изменение: вместо значения 200 поставить 400

¨ Запустить программу на выполнение

Формальные сведения о QBASIC

Алфавит QBASIC

Алфавит языка BASIC включает:

¨ Все латинские прописные и строчные буквы;

¨ Арабские цифры 0-9;

¨ Знаки арифметических операций:^; *; /; +; -; \; MOD.

¨ Знаки операций отношения: =; >; =; .

¨ Разделители и прочие символы:

. – точка;

, - запятая;

; - точка с запятой;

: - двоеточие;

_ - пробел;

! – признак вещественной величины;

% - признак целой величины;

& - признак длинной целой величины

$ - признак текстовой величины;

() – круглые скобки;

“ – кавычки;

‘ – апостроф.

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


Данные в языке QBASIC

Помните! Разделителем целой и дробной частей является точка.

102! – константа, числовая, вещественная, обычной точности.

4326% - константа, числовая, целая.

“План на неделю” – константа текстовая. Заключается в кавычки.

Переменные

Переменная – это величина, значение которой может изменяться в процессе выполнения программы, обозначается именем (идентификатором).

Имя переменной – это произвольный набор символов, который может содержать о 1 до 40 символов. Первый символ должен быть латинской буквой, а остальные – латинские буквы или цифры. Регистр букв не имеет значения.

Примеры имен: A; dN; GodRozd; k1%; dlina!


Тип переменной BASIC различает пять типов данных. Когда записано с=a+b+2, BASIC должен знать, какой тип чисел имеется в виду. BASIC распознает тип переменной по суффиксу, т.е. по последнему символу в имени переменной.


Применение суффиксов не всегда удобно: они загромождают текст, да и ошибиться в них легко.

Поэтому в BASIC предусмотрен другой способ описания типа переменной.

Общий формат команды описания типа:

DEFINT X-X(целые числа, INTeger)

DEFLNG X-X(длинные целые числа, LoNG)

DEFSNG X-X(вещественные числа обычной точности, SiNGle)

DEFDBL X-X(вещественные числа двойной точности, DouBLe)

DEFSTR X-X(строки символов, STRing)

Комбинация X-X - диапазон букв. Вместо диапазона можно указать одну букву.

DEFLNG A-D, все переменные, имена которых начинаются с букв, лежащих в указанном диапазоне, т.е. с A до D, будут считаться длинными целыми (aRc, BT, DLINA и т.п.)

DEFSTR STR, переменная STR- строка символов.

Константы

Константы (числовые или строковые) не меняются в ходе исполнения программы. Значения констант записываются явно, числом или строкой символов. Например:

Z$=”План на неделю”

Существует специальный оператор для описания констант.

Формат описания констант:

CONSTимя переменной=константа

Если переменная описана как константа с помощью CONST, QBASIC не позволит случайно изменить ее значение.

INPUT "Введите три значения"; A, B, C

R = A ^ 2 + B * C + G

PRINT "R /30/5138113.html" rel="nofollow" target="_blank">

Знак операции Название Пример
^ возведение в степень X^Y
* умножение X*Y
/ деление X/Y
+ сложение X+Y
- вычитание X-Y
\ деление нацело X\Y; 10\4 (ответ-2)
MOD вычисление остатка от целочисленного деления X MOD Y 10 MOD 3 (ответ-1)

Операции расположены в порядке уменьшения приоритета. Для изменения приоритета используются круглые скобки.

х 2 – х + 2 на языке QBASIC ( х ^ 2 – х + 2 ) / (х ^ 4+5*х^2+40)

Условные выражения

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

= - равно;

>- больше;

= - больше или равно;

Условное выражение принимает булево (логическое) значение: TRUE или FALSE.

Условные выражения широко используются в операциях ветвления и в организации циклов. Например:

Логические выражения

Операндами логического выражения являются условные выражения, которые соединяются между собой знаками логических операций AND ("И", конъюнкция), OR ("ИЛИ", дизъюнкция), NOT (отрицание), например:

Логическое выражение принимает булево (логическое) значение: TRUE или FALSE.

Частный случай логического выражения - условное выражение.

Так же, как и условные выражения, логические выражения применяются в операциях ветвления и в организации циклов, например:

IF d<>0 AND z$="V" THEN…

WHILE d=0 OR k>40…

Символьные выражения

Операндами символьных выражений являются строки символов. Для этих выражений определена лишь одна операция - конкатенация (соединение) строк. Знак операции - "+", а результат операции - новая строка символов. Например, "Оболочка "+"Windows" результата - " Оболочка Windows"

Монитор современного компьютера может работать в двух режимах: текстовом и графическом. В языке программирования Quick Basic предусмотрены способы вывода информации на экран в обоих режимах.

Рассмотрим, что и каким образом можно выводить на экран в текстовом режиме.

По умолчанию Quick Basic работает с монитором в текстовом режиме. В этом режиме на экран можно вывести все символы, которые есть на клавиатуре , и символы псевдографики. В текстовом режиме экран имеет 25 строк, в каждой строке 80 позиций ( однако, с помощью оператора WIDTH 40 можно получить 40 “широких” позиций) для вывода символом, следовательно, максимальное количество символов, которое можно разместить на экране в текстовом режиме , равно 2000=25х80.

5.1. Управление цветом в текстовом режиме

Оператор COLOR цвет_символа, цвет_фона устанавливает цвет выводимого символа и цвет фона под символом.

Цвет символа - это число от 0 до 15, т.е. символ может быть выведен на экран одним из 16 цветов .

Цвет фона - это число от 0 до 7.

Если оператора COLOR в программе нет совсем, то Quick Basic по умолчанию устанавливает цвет 7 (белый) для символа и цвет 0 (черный) для фона.

Каждый цвет - это комбинация трех основных цветов - красного, зеленого и синего . Каждый цвет может выводиться с низкой или высокой интенсивностью (яркостью).

10 - ярко-зеленый

3 - голубой (точнее, циан)

11 - ярко-голубой

12 - ярко-красный

5 - фиолетовый

13 - ярко-фиолетовый

6 - коричневый

15 - ярко-белый

Составим таблицу цветов. Наличие в цвете какой-либо цветовой компоненты будем отмечать единицей, а ее отсутствие - нулем.

Если к цветам, указанным в таблице, прибавить 16, то символы будут выводиться тем же цветом, но кроме того начнут мигать. Таким образом, если в качестве цвета символа указан код со значением с 16 по 31, то мы получим соответствующий мигающий цвет.

Пример: обычный красный - 4; мигающий - 20.

Задание . Загрузите программу PRG.BAS и сделайте полоски разных цветов.

Некоторые символы не так-то просто вывести на экран просто потому, что их нет на клавиатуре. Это, в частности, относится к символам псевдографики.

Псевдографика - это символы, с помощью которых можно рисовать линии, рамки и другие графические изображения в текстовом режиме. Символы псевдографики отличаются от обычных символов тем, что занимают всю ширину (высоту) места, отведенного символу на экране. Поэтому они, будучи поставлены рядом, сливаются и образуют непрерывные линии.

Чтобы вывести на экран символ, отсутствующий на клавиатуре , нужно нажать клавишу Alt и, не отпуская ее, другой рукой набрать код символа (число от 0 до 255). (Некоторые драйверы клавиатуры имеют режим набора псевдосимволов.)

Приведем коды некоторых символов.

Одинарная рамка: Двойная рамка:

Задача . Вывести на экран таблицу символов.

Решение. С помощью функции CHR$ получим символ по его коду:

символ = CHR$( число )

и сразу выведем его на экран оператором PRINT . Чтобы все символы поместились на экране, расположим их в виде таблицы 16х16. Пронумеруем строки и столбцы таблицы числами от 0 до 15. Тогда код символа, стоящего на пересечении i-ой строки и j-го столбца , равен значению 16*i + j. Организуем вывод таблицы по строчкам:

Запишем программу под именем TABL.BAS и выполним ее. На экране появится таблица, однако некоторые места в ней останутся пустыми - для этих кодов нет графического представления. Но это не значит, что ими нельзя воспользоваться в программе! Так, например, при выполнении оператора PRINT CHR$(7) раздается звуковой сигнал, PRINT CHR$(12) очищает экран, PRINT CHR$(13) переводит курсор на новую строку и т.д.

Конечно, чаще всего, те же действия можно выполнить “стандартными” операторами: BEEP - звуковой сигнал, CLS - очистка экрана, перевод строки делается автоматически после вывода на экран (если только в конце оператора PRINT не стоит точка с запятой для подавления перевода строки!). Иногда знание кода символа необходимо. Невозможно, например, вывести оператором PRINT текст, содержащий кавычки, так как последние воспринимаются как ограничители. Чтобы вывести на экран фразу: “Смотрите фильмы в кинотеатре “Космос”!” следует написать

PRINT “Смотрите фильмы в кинотеатре”; CHR$(34);“Космос”; CHR$(34); “!”

PRINT “Смотрите фильмы в кинотеатре”+ CHR$(34) +“Космос”+ CHR$(34) + “!”

Вернемся к программе TABL.BAS. Поскольку вывод символа с кодом 12 эквивалентен оператору CLS , то с экрана сотрется изображения предыдущих символов, и мы их не увидим (разве что заметим, как что-то мелькнуло на экране). Вставим, поэтому, проверку условия: код символа не равен 12 (Так как знака “не равен” нет на клавиатуре, то он изображается двумя символами: <> или >

Задания . Пользуясь символами псевдографики “нарисуйте” на экране рамку, лестницу, флаг, забор и т.д.

6. Работа с монитором в графическом режиме

В графическом режиме минимальным элементом, который можно вывести на экран, является не символ, а пиксель . Пиксель (точка экрана) представляет собой крошечный прямоугольник, размеры которого зависят от установленного графического режима. Верхняя левая точка экрана имеет координату (0,0), ось ОХ направлена вправо, ось О Y – вниз, т.е. чем ниже на экране расположена точка, тем больше ее координата по оси OY..

Оператор SCREEN номер режима переводит режим работы экрана из текстового в графический с заданным номером. Если оператор SCREEN не указан, то подразумевается текстовый режим. Текстовый режим имеет номер 0, поэтому, если нужно из графического режима перейти в текстовый, следует использовать SCREEN 0 . Иногда при возврате из графического режима (например, из SCREEN 7) символы текста становятся широкими. Вернуть им нормальные размеры можно только оператором WIDTH 80. Графические режимы различаются разрешением (количеством “точек”) экрана и количеством возможных цветов.

Например, SCREEN 7 устанавливает разрешение экрана в 320 точек по горизонтали и 200 точек по вертикали. Положение произвольной точки на экране задается двумя числами (x, y) в экранной системе координат. От декартовых координат эта система отличается тем, что ось Oy направлена вниз, а не вверх.

В графическом режиме на экран кроме символов можно выводить и геометрические фигуры: точки, линии, прямоугольники, окружности и т.д. Замкнутые фигуры можно закрашивать.

6.1. Рисование точек и линий

Оператор PSET (x, y)[, цвет ] закрашивает точку экрана заданным цветом.

Оператор LINE (x1, y1)-(x2, y2)[, цвет ] рисует отрезок, соединяющий на экране точки с координатами (x1, y1) и (x2, y2)

Оператор LINE - (x2, y2)[, цвет ] рисует отрезок, соединяющий последнюю выведенную на экран точку с точкой (x2, y2).

Цвет в этих операторах задается числом от 0 до 15. Если цвет в графических операторах не указан, то все линии рисуются белым цветом. (О том, какие могут быть цвета в различных графических режимах, мы поговорим позже.)

Пример. Соединить точки (20, 45) и (38, 144).

Первый способ: LINE (20, 45)-(38, 144)
Второй способ: PSET (20, 45)
LINE -(38, 144 )

Задание . Построить на экране треугольник, четырехугольник, пятиугольник; нарисовать домик. Записать программу “Домик” в файл HOUSE.BAS.

6.2. Прямоугольники и квадраты

Рисовать домик отдельными линиями - не самый рациональный способ. Легко увидеть, что домик представляет собой прямоугольник с крышей из двух отрезков. (Так рисуют домик почти все, кроме гениальных фантазеров и профессиональных художников.) А нарисовать прямоугольник можно одним оператором

LINE (x1, y1)-(x2, y2), [ цвет ], B

Этот оператор рисует рамку-прямоугольник со сторонами, параллельными границам экрана. Точки (x1, y1) и (x2, y2) суть две вершины прямоугольника, расположенные по одной из его диагоналей. Если параметр цвет отсутствует, то будет нарисована белая рамка. (Но “лишняя” запятая должна остаться!)

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

LINE (20, 20)-(120, 120), , B

потерпит неудачу. Высота этого “квадрата” окажется больше, чем ширина, хотя обе стороны содержат одинаковое число пикселей. Уменьшим число точек в высоте “квадрата” в 1.2 раза (для SCREEN 1 !) или во столько же раз увеличим ширину “квадрата” - только тогда мы получим истинный квадрат. Поправочный коэффициент назовем “коэффициентом вытянутости” пикселя.

Оператор LINE (x1, y1)-(x2, y2), [ цвет ], BF рисует такой же, но закрашенный прямоугольник.

Задача . Нарисовать на экране пирамиду из 10 ступенек-прямоугольников.

Решение. Воспользуемся тем, что пирамида имеет осевую симметрию. Расположим ось пирамиды посредине экрана. Пронумеруем прямоугольники сверху вниз числами от 1 до 10. Очевидно, что значения x1, y1, x2, y2 зависят от номера прямоугольника. В силу симметрии, чтобы получить x1, нужно от 160 вычесть что-то, а чтобы получить x2 - прибавить столько же.

Составим вспомогательную табличку.

Легко заметить, что номер ступеньки-прямоугольника и величина добавки связаны зависимостью

Если обозначить через k номер ступеньки, получим формулы для вычисления x1 и x2:

Значения y1 и y2 также зависят от номера и высоты ступеньки h , где h - некоторая заранее заданная величина (например, h = 10 ):

Теперь можно составить программу.

Задание . Запишите программу под именем PIRAMIDA.BAS. Измените высоту, ширину, цвет ступенек. Составьте пирамиду из закрашенных прямоугольников; из закрашенных прямоугольников с рамкой другого цвета.

Заметим, что использование переменной h для обозначения высоты ступенек позволяет проще изменять высоту ступеньки.

6.3. Окружности и дуги

Оператор CIRCLE (x, y), радиус [, цвет ] рисует окружность заданного радиуса и цвета с центром в точке (x, y). Если вся окружность на экране не поместится, то будет нарисована только ее часть. Радиус окружности задается в пикселях, но такое количество пикселей укладывается только по горизонтали. Размер вертикального радиуса (в пикселях) зависит от номера графического режима.

Задача . Нарисовать несколько концентрических окружностей (“мишень”).

Задание . Запишите программу под именем MISHEN.BAS. Сделайте шаг в цикле равным 3, 2, затем 1 (но не 0, так как программа “зациклится”!). Объясните возникающий при этом эффект. Измените положение “мишени” на экране так, чтобы ее часть ушла за экран. Введите зависимость положения центра окружности от ее радиуса. Поэкспериментируйте с несколькими разноцветными “мишенями ”.

Тем же оператором можно нарисовать и дугу, только дополнительно потребуется задать значения начального и конечного углов дуги:

CIRCLE (x, y), радиус , [ цвет ], нач_угол , кон_угол

Если поместить в точку (x, y) начало математической системы координат, то начальный и конечный углы откладываются от оси Ox в направлении против часовой стрелки.

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

Пример . Изобразите на листе бумаги, что получится на экране после выполнения программы:

Правильность ответа проверьте на компьютере.

Замечание. Математики рассматривают как положительные, так и отрицательные углы. В операторе CIRCLE также могут использоваться отрицательные значения для начального и конечного углов, однако здесь знак минус “сообщает”, что следует не только нарисовать дугу, но и провести один или оба радиуса. Измените предыдущую программу, посмотрите, что получится на экране. Учтите, что с точки зрения Quick Basic’а “отрицательный” нуль ничем не отличается от обычного, поэтому замените его очень маленьким отрицательным числом, например, - 0.001.

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

Составьте программы, которые выводят на экран следующие картинки:

6.4. Графические режимы

SCREEN 1 - это устаревший графический режим, используемый в Quick Basic только для совместимости с некоторыми мониторами. В этом режиме доступны одновременно только 4 цвета (включая цвет фона). Одному и тому же номеру соответствуют разные цвета в зависимости от выбранной палитры :

Оператор COLOR в этом режиме имеет свой особый синтаксис:

COLOR цвет_фона, номер_палитры

Выбор цвета фона намного богаче - он может быть любым из 16 основных цветов (от 0 до 15).

По умолчанию SCREEN 1 устанавливает первую палитру.

Высота пикселя в этом режиме больше его ширины в 2.4 раза.

SCREEN 7 задает разрешение 320 точек по горизонтали на 200 точек по вертикали, следовательно, “коэффициент вытянутости” пикселя , как и в SCREEN 1 равен 1.2..

В этом и следующих режимах оператор COLOR управляет цветом линий, цветом фона экрана и цветом символов текста. Можно указывать цвет рисования и в каждом графическом операторе (если цвет пропущен, то линия рисуется цветом, заданным в операторе COLOR , а если нет и оператора - то ярко-белым цветом). Оператор COLOR имеет следующий вид:

COLOR цвет_линии, цвет_фона

Цвет линии - число от 0 до 15, цвет фона - число от 0 до 7. Заданные параметры распространяются и на текстовый вывод, но в отличие от текстового режима нельзя вывести на экран мигающие символы. Кроме того, изменение цвета фона действует и на уже выведенный текст!

SCREEN 8 задает разрешение 640 точек по горизонтали на 200 точек по вертикали (“коэффициент вытянутости” = 2.4), а SCREEN 9 - 640 точек по горизонтали на 350 точек по вертикали. Точное значение “коэффициента вытянутости“ в SCREEN 9 равно 48/35. что практически равно 1.37.

Для мониторов типа VGA и SVGA возможны и другие графические режимы. Чаще всего используются режим SCREEN 12 с разрешением 640 точек по горизонтали на 480 точек по вертикали, в котором “коэффициент вытянутости” в точности равен 1. Однако в этом режиме в операторе COLOR указывается только один параметр - цвет линии (символа). Цвет фона оператором не задается!

Задание . Загрузите программу PIRAMIDA.BAS и посмотрите результат выполнения в рассмотренных графических режимах. Сделайте ступеньки пирамиды разных цветов. Подпишите рисунок (используйте оператор COLOR для задания цвета фона и символов текста).

6.5. Закраска произвольной области

Если на экране нарисована замкнутая кривая, то область внутри нее можно закрасить. Также можно закрасить и область, оставшуюся снаружи от кривой. Для этого используется оператор

PAINT (x, y), цвет_закраски, цвет_границы

Точка (x, y) должна попасть внутрь области, подлежащей закрашиванию.

Если граница области “дырявая”, то краска выльется за пределы области, даже если дырка всего в один пиксель. То же самое произойдет, если граница области содержит по недосмотру кусочек другого цвета - для оператора PAINT это все равно что дырка.

Пример . Нарисовать флаг Японии - красный круг на белом фоне.

Задание . Нарисовать флаги предложенных ниже стран или любой другой страны.

Чтобы упростить построение сложного контура, можно составить его из нескольких простых. Например, крест на флаге Швеции сделать из двух закрашенных прямоугольников, серп на флаге Турции - из двух кругов, один из которых закрасить белым, а другой, меньший, красным.

При закраске окружности в качестве начальной точки для оператора PAINT удобно брать центр окружности, в других случаях, особенно при закраске маленьких областей, легко “ промахнуться ” мимо области. Чтобы проконтролировать расположение начальной точки, заменим оператор PAINT оператором PSET(x, y). Убедимся в том, что точка (x, y) попала в нужное место, и после этого вернем оператор PAINT на свое законное место.

Читайте также: