Практикум по среде и языку QBasic 145
секунды и выводить их значения на экран. (Обратите внимание на необходимость использования оператора END в конце основной программы. Без этого оператора среда будет выполнять подпрограмму как основную программу и выдаст сообщение об ошибке!)
Причина, по которой здесь использован устаревший способ оформления подпрограмм, будет разъяснена позднее. А пока рассмотрим суть производимых подпрограммой действий. Поскольку процедура PRINT начинает вывод чисел только со значащих цифр (нули в левой части числа не выводятся), для вывода значений счетчиков минут и секунд используется строковая переменная с пробелом посередине. После вывода этой строковой переменной в середину экрана между значениями минут и секунд выводится мигающее двоеточие. Затем увеличивается значение счетчика секунд и при его переполнении (значение счетчика секунд больше 59 не допускается!) корректируются счетчики минут и секунд. После этого отрабатывается задержка 1 с.
Убедившись в работоспособности программы вы вряд ли будете довольны полученной картинкой. Она оставляет желать много лучшего в части индикации: некрасиво, некрупно и неярко. Есть и еще один изъян, который не бросается в глаза, но мы снова отложим это напоследок.
Займемся пока таким украшательством, которое позволит нам понять каким образом изображения символов выводятся на экран дисплея. На самом деле при описании кодирования данных для вывода на дисплей в текстовом режиме была разъяснена только одна и притом простейшая половина вопроса, а именно, вход в кодовую страницу. А каким образом кодируется символ в этой кодовой странице? В кодовой странице для хранения изображения каждого символа отводится некоторое количество (не менее 8) байтов. Для того, чтобы увидеть изображения необходимых нам символов в увеличенном масштабе, используем однострочную программу:
SCREEN 13: COLOR 2: PRINT "0123456789":COLOR 7
Разглядывая изображения цифр, вы можете убедиться, что для изображения каждого из этих символов используется 8 строк по 8 точек в каждой, причем одни из них зеленые (элемент символа), а другие черные (элемент фона). Это способ представления символов через так называемые фонты в данном случае размером 8Х8 (кроме него в зависимости от типа и режима работы дисплея могут быть использованы размеры 8Х14, 8Х16 и 9Х14).
В нижеследующем тексте программы через операторы DATA задается часть кодовой страницы для цифровых символов. Кодируя элемент символа единицей, а элемент фона нулем, можно записать изображение каждого символа в виде 4 чисел типа INTEGER, притом для удобства программиста лучше использовать шестнадцатеричные коды. Обратите внимание на то, что первая строка и первый столбец нулевые, а в символе О исключено перечеркивание отличающее его от буквы.
Для псевдографического вывода укрупненного изображения цифр в текстовом режиме выберем масштаб элемента символа. При выводе 25 строк из 80 символов и соотношении ширины экрана к высоте 4:3 отношение ширины символа к высоте равно 25:48. Поэтому в качестве элемента