Текстовый режим языка программирования.
Монитор современного компьютера может работать в двух режимах: текстовом и графическом. В языке программирования 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 (черный) для фона.
Каждый цвет - это комбинация трех основных цветов - красного, зеленого и синего. Каждый цвет может выводиться с низкой или высокой интенсивностью (яркостью).
Красный |
Зеленый |
Синий |
Обычный |
Яркий |
||
0 |
0 |
0 |
|
0 - черный |
|
8 – серый |
0 |
0 |
1 |
|
1 - синий |
|
9 - ярко-синий |
0 |
1 |
0 |
|
2 - зеленый |
|
10 - ярко-зеленый |
0 |
1 |
1 |
|
3 - голубой (точнее, циан) |
|
11 - ярко-голубой |
1 |
0 |
0 |
|
4 - красный |
|
12 - ярко-красный |
1 |
0 |
1 |
|
5 - фиолетовый |
|
13 - ярко-фиолетовый |
1 |
1 |
0 |
|
6 - коричневый |
|
14 - желтый |
1 |
1 |
1 |
|
7 - белый |
|
15 - ярко-белый |
Составим таблицу цветов. Наличие в цвете какой-либо цветовой компоненты будем отмечать единицей, а ее отсутствие - нулем.
Если к цветам, указанным в таблице, прибавить 16, то символы будут выводиться тем же цветом, но кроме того начнут мигать. Таким образом, если в качестве цвета символа указан код со значением с 16 по 31, то мы получим соответствующий мигающий цвет.
Пример: обычный красный - 4; мигающий - 20.
Задание. Загрузите программу PRG.BAS и сделайте полоски разных цветов.
5.2. Псевдографика
Некоторые символы не так-то просто вывести на экран просто потому, что их нет на клавиатуре. Это, в частности, относится к символам псевдографики.
Псевдографика - это символы, с помощью которых можно рисовать линии, рамки и другие графические изображения в текстовом режиме. Символы псевдографики отличаются от обычных символов тем, что занимают всю ширину (высоту) места, отведенного символу на экране. Поэтому они, будучи поставлены рядом, сливаются и образуют непрерывные линии.
Чтобы вывести на экран символ, отсутствующий на клавиатуре, нужно нажать клавишу Alt и, не отпуская ее, другой рукой набрать код символа (число от 0 до 255). (Некоторые драйверы клавиатуры имеют режим набора псевдосимволов.)
Приведем коды некоторых символов.
Одинарная рамка: |
Двойная рамка: |
Задача. Вывести на экран таблицу символов.
Решение. С помощью функции CHR$ получим символ по его коду:
символ = CHR$(число)
и сразу выведем его на экран оператором PRINT. Чтобы все символы поместились на экране, расположим их в виде таблицы 16х16. Пронумеруем строки и столбцы таблицы числами от 0 до 15. Тогда код символа, стоящего на пересечении i-ой строки и j-го столбца, равен значению 16*i + j. Организуем вывод таблицы по строчкам:
CLS FOR i = 0 TO 15 ‘Выводим строку таблицы FOR j = 0 TO 15 kod = 16*i + j LOCATE i + 5, 2* j + 5 PRINT CHR$(kod) NEXT j NEXT i
|
Запишем программу под именем 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 (Так как знака “не равен” нет на клавиатуре, то он изображается двумя символами: <> или ><).
CLS FOR i = 0 TO 15 ‘Выводим строку таблицы FOR j = 0 TO 15 kod = 16*i + j IF kod <> 12 THEN LOCATE i + 5, 2* j + 5 PRINT CHR$(kod) END IF NEXT j NEXT i
|
Задания. Пользуясь символами псевдографики “нарисуйте” на экране рамку, лестницу, флаг, забор и т.д.