MainC++DelhiPascalBasicGuest bookForumСоветы

Счетчик















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г












Реклама


Хостинг от uCoz