В качестве примера использования ресурсов модуля CRT рассмотрим программу, которая случайным образом выбирает размер и местонахождение окна на экране, закрашивает его в цвет, выбранный случайным образом, помещает в него текст и включает источник звука.
program EXAMPLE28; |
uses CRT; |
const Text = ‘Привет!’; |
TextLen = 7; |
MinLen = TextLen+6; |
Pause = 500; |
var XI, Yl, Х2, Y2: Word; |
Background: Word; |
Color: Word; |
SetBlink: Byte; |
Freq: Word; |
procedure DoubleFrame; |
var i: Byte; |
begin |
GotoXY(2, 1); |
Write(‘ é ‘); |
for i := 3 to X2 — 2 do |
Write(‘-‘); |
Write(‘ ù ‘); |
for i := 2 to Y2 — 1 do |
begin |
GotoXY(2, i); |
Write(‘|’); |
GotoXY(X2 — 1, i); |
Write(‘|’) |
end; |
GotoXY(2, Y2); |
Write(‘ ë ‘); |
for i := 3 to X2 — 2 do |
Write(‘-‘); |
Write(‘ û ‘) |
end; |
begin |
TextBackGround(Black); |
ClrScr; |
Randomize; |
while not KeyPressed do |
begin |
X1 := 1 + Random(80 — MinLen); |
Х2 := MinLen + Random(80 — XI — MinLen); |
Y2 := Round(X2 * 25 / 80) — 1; |
Y1 := 1 + Random(24 — Y2); |
Window(Xl, Yl, XI + Х2 — 1, Yl + Y2 — 1); |
BackGround : = Random(8); |
Color := Random(16); |
SetBlink : = Random(2); |
TextBackGround(BackGround); |
ClrScr; |
TextColor(Color + Blink * SetBlink); |
GotoXY((X2 — TextLen) div 2+1, (Y2 — 1) div 2+1); |
Write(Text); |
DoubleFrame; |
BackGround:=(TextAttr and $70) shr 4; |
case BackGround of |
0: Freq := 262; |
1: Freq := 294; |
2: Freq := 330; |
3: Freq := 349; |
4: Freq := 392; |
5: Freq := 440; |
6: Freq := 494; |
7: Freq := 524; |
end; |
Sound(Freq); |
Delay(Pause); |
NoSound |
end; |
Window (1, 1, 80, 25); |
TextBackGround(Black); |
TextColor(LightGray); |
ClrScr |
end. |
Pascal урок№6 модуль crt и очистка экрана
Ввод и вывод данных в Pascal ABC. Использование модуля CRT,GraphABC
В этой программе организован цикл формирования на экране случайным образом окон с соответствующим заполнением и выдачи звука в зависимости от выбранного цвета фона окна. Цикл продолжается до первого нажатия любой клавиши. В программе используются различные подпрограммы модуля CRT (ClrScr, Delay, GotoXY, NoSound, Sound, TextBackGround, TextColor, Window), a также ряд констант и переменных (Black, Blink, TextAttr). Относительно программы следует сделать ряд замечаний.
В программе введена константа Text, определяющая выводимый на экран текст. В языке Паскаль идентификатор Text определяет текстовый файл (см. п. 6.6). Но т. к. он не является зарезервированным словом, его можно переопределять по своему усмотрению. Однако делать это нежелательно, потому что его первоначальное назначение становится недоступным в программе.
В связи с тем, что в данной программе текстовые файлы не используются, такое определение идентификатора в данном случае допустимо. Так можно поступать с большинством типов данных, стандартными процедурами и функциями.
В процедуре формирования двойной рамки DoubleFrame используются символы псевдографики. Для того чтобы поместить такой символ в текст программы, следует, нажав клавишу Alt и не отпуская ее, набрать на правой вспомогательной панели клавиатуры код символа, после чего отпустить клавишу Alt.
При формировании звука в программе используется получение цвета фона из содержимого переменной TextAttr. Можно заметить, что эта операция в данном случае необязательна, т. к. в переменной BackGround уже находится текущий цвет фона. В программе оператор введен для того, чтобы показать, как можно использовать содержимое переменной TextAttr.
Источник: 5byte.ru
Лекция 10. Модуль crt
Модуль CRT — набор средств для работы с экраном в текстовом режиме, клавиатурой и для управления звуком. Для того чтобы использовать эти средства требуется после заголовка программы записать:uses CRT;.
1. Управление экраном
В текстовом режиме экран представляется разбитым на маленькие прямоугольники одинакового размера, в каждом из которых может находиться какой-либо символ из набора ASCII. Для символов можно задавать цвет самого символа и цвет прямоугольника, в котором он рисуется (цвет фона). Строки экрана нумеруются сверху вниз, а столбцы слева направо, нумерация и строк, и столбцов начинается с единицы.
Наиболее распространённым в настоящее время является текстовый режим 80×25 при 16 возможных цветах текста и фона. Многие графические адаптеры позволяют использовать другие режимы, например: 40×25, 80×43, 80×50 и т. д.
В управлении текстовым экраном важную роль играет курсор. Вывод символов на экран (т.е. write иwriteln) осуществляется начиная с позиции курсора, когда все символы выведены, курсор останавливается в следующей позиции после последнего символа. Ввод также будет производиться начиная с позиции курсора.
Ниже приведены основные процедуры и функции для управления экраном в текстовом режиме.
Название
Назначение
Вставить строку в том месте где находится курсор, все строки ниже курсора сдвигаются вниз на одну позицию. Курсор остаётся на том же месте.
Удалить строку в позиции курсора. Курсор остаётся на том же месте.
Переместить курсор в позицию (x,y);x — номер строки,y —номер столбца.
Очистить строку от курсора и до правого края экрана. Курсор остаётся на прежнем месте
Устанавливает повышенную яркость для вывода текста
Устанавливает цвет для вывода текста. Значения цветов — обычно числа от 0 до 15. Вместо этих чисел можно указывать и существующие константы (black, white, red, green, blue, magenta, cyan, brown, lightgray и т. п.). При необходимости можно заставить текст мерцать прибавляя к номеру цвета число 128 или константуBlink.
Устанавливает цвет для фона.
Очистить экран и поместить курсор в левый верхний угол, т.е. в позицию (1,1) — 1-я строка, 1-й столбец. При очистке экран заполняется цветом фона (см.TextBackground)
Эта функция возвращает номер строки, в которой находится курсор.
Номер столбца, в котором находится курсор
2. Работа с клавиатурой
При работе с клавиатурой компьютер помещает всю информацию о нажатии клавиш в очередь до тех пор, пока эта информация не потребуется программе (например, для вывода на экран, для движения объектов в играх и т.п.). Для работы с клавиатурой важны 2 функции:
- KeyPressed: boolean — возвращаетtrue, если очередь клавиатуры не пуста (то есть была нажата). Простейший пример использования — повторять какие либо действия, пока не нажата клавиша:repeat . until KeyPressed;.
- ReadKey: char — возвращает символ, соответствующий нажатой клавише (из очереди клавиатуры). Если пользователь нажал клавишу, для которой имеется кодASCII, то в очередь будет положен один соответствующий символ, а если это специальная клавиша (F1, F2, . F12, клавиши управления курсором, Ins, Del, Home, End, PgUp, PgDn), то сначала в очередь будет положен символ с кодом 0, а затем дополнительный символ. Если очередь клавиатуры пуста, тоReadkey будет ждать, пока пользователь не нажмёт какую-либо клавишу.
Источник: studfile.net
Библиотеки (модули) CRT и Graph в Turbo Pascal.
его очистку, управлять звуковым генератором компьютера.
Подключение модуля CRT производится директивой USES CRT, которая
указывается в разделе описаний. CRT — аббревиатура, означающая
Таблица настройки цветов в модуле CRT Turbo Pascal
Uses CRT — подключение модуля CRT.
TextColor — устанавливает цвет символов.
TextBackGround — устанавливает цвет фона (только 8 неярких цветов).
HighVideo — устанавливает включение яркости.
LowVideo — устанавливает выбор низкой яркости.
NormVideo — восстановление того цветового оформления, которое было
на момент начала работы программы.
ClrScr — производит очистку экрана.
ReadKey — обеспечивает задержку изображения и выход из программы при
нажатии любой клавиши, например Esc, Enter, Пробел.
Sound(1000) — включение звукового сигнала частотой 1000 Гц.
Sound(1500) — включение звукового сигнала частотой 1500 Гц.
Delay(1000) — установка (задержка) звучания на время 1 с (1000 мс).
Delay(2000) — установка (задержка) звучания на время 2 с.
NoSound — отключение звукового сигнала.
Пример подключения модуля CRT:
Пример программы, использующей модуль CRT:
writeln(‘Законы состояния идеального газа.’);
writeln(‘Рассмотрим случаи (здесь число N — номер случая), когда:’);
writeln(‘1) T=const, N=1.’);
writeln(‘2) V=const, N=2.’);
writeln(‘3) P=const, N=3.’);
writeln(‘4) P,V,T=varia, N=4.’);
writeln(‘5) Быстрое сжатие или расширение’);
writeln(‘в теплоизолированном сосуде Q=0, N=5.’);
write(‘Введите число N=’);
writeln(‘Изотерм. процесс, T=const, PV=const-закон Бойля-Мариотта.’);
writeln(‘Изохорный процесс, V=const, P/T=const-закон Шарля.’);
writeln(‘Изобарный процесс, P=const, V/T=const-закон Гей-Люсака.’);
writeln(‘P,V,T=varia, PV=(M/Mo)RT-уравнение Менделеева-Клайперона.’);
writeln(‘Адиабатный процесс, Q=0, (PV) Г -уравнение Пуассона.’);
if N>5 then writeln(‘Другие случаи здесь не рассматриваются.’)
writeln(‘Выход — любая клавиша.’);
Библиотека (модуль) Graph в Turbo Pascal 7.0.
Модуль Graph представляет собой библиотеку подпрограмм Turbo
Источник: www.examen.ru