Qbasic:
# Псевдографика
Некоторые символы не так-то просто вывести на экран просто потому, что их нет на клавиатуре. Это, в частности, относится к символам псевдографики.
Псевдографика - это символы, с помощью которых можно рисовать линии, рамки и другие графические изображения в текстовом режиме. Символы псевдографики отличаются от обычных символов тем, что занимают всю ширину (высоту) места, отведенного символу на экране. Поэтому они, будучи поставлены рядом, сливаются и образуют непрерывные линии.
Чтобы вывести на экран символ, отсутствующий на клавиатуре, нужно нажать клавишу 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
|
Задания. Пользуясь символами псевдографики “нарисуйте” на экране рамку, лестницу, флаг, забор и т.д.
Автор: Гутман Г.Н. Мой любимый QuickBASIC, 2001г
|