Основные процедуры и функции модуля CRT

Заказать работу

Содержание

 

Рекурсия  . . . . . . . . . . . . . . . . . . . . . . . . . .

Пример 1 . . . . . . . . . . . . . . . . . . . . . . . . . .

Пример 2 . . . . . . . . . . . . . . . . . . . . . . . . . .

Пример 3 . . . . . . . . . . . . . . . . . . . . . . . . . .

 

Пример 4 . . . . . . . . . . . . . . . . . . . . . . . . . .

 

Пример 5 . . . . . . . . . . . . . . . . . . . . . . . . . .


Модуль CRT

 

Аббревиатура CRT будет расшифровываться по-русски как «электронно-лучевая трубка». И действительно, в модуле CRT реализованы специальные процедуры и функции для работы с текстовой информацией на дисплее, позволяющие: управлять текстовыми режимами, организовывать окна вывода на экран, настраивать цвета символов на экране, управлять курсором. Кроме того, в модуль включены функции опроса клавиатуры и процедуры управления встроенным в ПЭВМ динамиком.

Несмотря на то, что модуль CRT реализует шестнадцать процедур и четыре функции, его размер составляет не более 3К. Его стандартное местонахождение – системная библиотека TURBO.TPL.

Для подключения модуля достаточно включить его в директиву USES в самом начале программы:

USES CRT;

Имеет смысл всегда подключать модуль CRT, даже если его процедуры или функции не используются в программе. Дело в том, что обычно процесс вывода информации на дисплей совершается по такой цепочке:

Оператор Write - -> функция MS-DOC (вывода строки) - ->

- -> подпрограмма BIOS (базовая система ввода-вывода) - ->

- -> видеопамять монитора.

При подключении модуля CRT из этой цепочки исключаются медленная функция MS-DOS и, как правило, подпрограмма БСВВ, вследствие чего значительно повышается скорость вывода информации на дисплей. Понятно, что чем «медленнее» работает компьютер, тем заметнее будет эффект от подключения модуля CRT. Пользователи ПЭВМ класса PC/XT могут воочию увидеть разницу, запустив по очереди две программы.

 

Пример:

{Программа использует стандартный вывод}

PROGRAM Standart Output;

VAR i : Byte; {счетчик цикла }

for i : = 1 to 100 do Write (‘* Турбо Паскаль*’);

WriteLn

END.

 

{Программа использует средства модуля CRT}

PROGRAM CRT_Output;

USES CRT;

VAR i : Byte;

BEGIN

for i : = 1 to 100 do Write (‘* Турбо Паскаль*’);

WriteLn

END.


Механизм подобного ускорения можно проиллюстрировать следующим образом. Существуют стандартные текстовые файлы: Input – для ввода и Output – для вывода информации. До тех пор пока программист или компилятор не предпримут каких-либо действий по их переназначению, они считаются связанными:

Input – с клавиатурой, а Output – с дисплеем посредством функций MS-DOS. Все стандартные операторы ввода-ввывода остаются связанными с этими файлами, т.е. оператор Write (‘привет’) эквивалентен оператору Write (Output,‘привет’), оператор ReadLn (SomeString) соответственно эквивалентен оператору ReadLn (Input, SomeString).

При подключении модуля CRT перед выполнением основного блока программы происходит переназначение стандартных файлов, как если бы выполнились операторы:

AssingCRT ( Input ); {Связывается системный файл Input с }

{фиктивным устройством CRT. }

Reset ( Input ); {открытие Input для ввода через CRT }

AssignCRT ( Output ); {Здесь связывается системный файл  }

{Output с фиктивным устройством CRT }

Rewrite ( Output ); {Файл Output открывается для вывода. }

Assign ( логический файл, физический файл или устройство ), но связывает логический файл с фиктивным устройством CRT.

Переназначение на CRT происходит автоматически, и нет нужды вставлять операторы в текст программы. Они выполняются при подключении модуля CRT.

Если же по каким-либо причинам пользователь хочет восстановить стандартную связь файлов Input, т.е. отказаться от «услуг» подключенного модуля CRT, то в его программе должны быть следующие операторы:

Assign ( Input, ’’ ); {Файл Input связывается со стандартным }

{устройством ввода (чтения). }

Reset ( Input ); {Файл Input открывается для чтения. }

Assign ( Output, ’’ ); {Файл Output связывается со стандартным }

{устройством вывода ( записи ). }

Rewrite ( Output ); { Файл Output открывается для записи. }

 

Пустая строка в операторе Assing означает стандартное предопределенное устройство, как правило устройство CON.

Кроме ускорения вывода информации на дисплей, подключение модуля CRT вносит ряд дополнений и расширений в работу стандартных процедур Write, WriteLn, Read и ReadLn.

Вывод специальных символов.

 

При подключенном модуле CRT можно выводить на дисплей строки и символы, содержащие в себе управляющие коды (коды 0…31). При этом они не будут оказывать управляющие воздействия, а будут изображаться на дисплее, согласно таблице изображений символов по их ASCII-коду.

Исключение составляют лишь четыре кода:


Код Управляющее воздействие Название кода

7

($07)

Вызывает один короткий звук динамика Bell

8

($08)

Сдвигает текущую позицию курсора влево на один символ, если есть куда сдвинуться в пределах строки; в противном случае не имеет эффекта

BackSpace

(BS)

10

($OA)

Переводит текущее положение курсора на строку ниже, не меняя текущего столбца

Line Feed

(LF)

13

($OD)

Переводит текущее положение курсора в начало строки

Carriage Return

(CR)


Системные переменные модуля CRT.

При подключении модуля CRT инициализируется ряд его системных констант и переменных. Константы используются как параметры в процедурах модуля CRT. Системные же переменные играют роль переключателей режимов работы механизмов ввода-вывода, реализованных в CRT. И константы, и переменные становятся глобальными и доступными программе, использующей модуль CRT, и их не надо описывать среди прочих идентификаторов. Так, например, в модуле CRT определена переменная DirectVideo типа Boolean, и ее стартовое значение равно True. Если надо сменить определяемый ею режим работы устройства CRT, то необходимо вставить в программу строку

USES CRT; { модуль CRT подключен }

. . . { раздел прочих описаний }

BEGIN

DirectVideo: = False ; { <- - смена режима CRT }

. . . { собственно программа }

END.

 

Но если определить в программе такую же переменную, то доступ к оригиналу из CRT будет заблокирован. Теперь, чтобы все-таки сменить значение системной переменной, надо указывать ее принадлежность в виде определяющего поля:

USES CRT; { Модуль CRT подключен. }

 VAR

DirectVideo : Boolean ; { Переопледеление системной }

{переменной. Тип может быть и любым другим }

BEGIN

DirectVideo : = False ; { не влияет на работу СRT }

CRT. DirectVideo : = False; { Режим работы CRT меняется. }

. . .

END.


Процедуры и функции модуля CRT.

 

Реализованные в модуле процедуры и функции сведены в таблице:

Процедуры и функции Назначение
Работа с экраном в целом
Window ( X1, Y1, X2, Y2, : Byte ) Задание текущего окна на экране
ClrScr Очистка текущего окна на экране
TextMode (M: Word) Установка текстового режима
Позиционирование курсора
GotoXY (X,Y :Byte) Установка курсора в столбец Х, строку Y
WhereX : Byte Выдача номера текущего столбца
WhereY : Byte Выдача номера текущей строки
Работа со строками
ClrEOL Стирание всех символов в строке, начиная от текущего и до конца строки
InsLine Вставка пустой строки на место текущей
DelLine Удаление текущей строки
Настройка цвета
TextColor(C: Byte) Выбор цвета символов на экране
TextBackGround (C: Byte) Выбор цвета фона под символами
HighVideo Включение яркости цвета символов
LowVideo Выключение яркости цвета символов
NormVideo Восстановление цветного режима
Подача звукового сигнала
Sound (Hz: Word) Включение звука с частотой тона Hz в герцах
NoSound Выключение звука
Использование встроенного таймера
Delay ( ms : Word ) Задержка процесса (пауза) в ms миллисекунд
Опрос клавиатуры
KeyPressed: Boolean Логическая функция для анализа нажатия клавиши
ReadKey : Char  Функция, возвращающая символ нажатой клавиши
Переназначение стандартных файлов
AssignCRT(VAR f : Text)  Связь текстового файла f с устройством CRT

Другие материалы

  • Модуль Graph в программе Turbo Pascal
  • ... : True - отображать, False - не отображать. Этот параметр необходим для того, чтобы можно было рисовать столбцы, стоящие друг на друге. В модуле Graph определены две константы для нее: CONST TopOn = True; {верхняя плоскость нужна} TopOff = False; {верхняя плоскость не нужна}   ...

  • Основные понятия алгоритмического языка
  • ... память ЭВМ, операция вывода - это пересылка данных из основной памяти на внешнее устройство (в выходной файл). Файлы на внешних устройствах часто называют физическими файлами. Их имена определяются операционной системой. В программах на языке Паскаль имена файлов задаются с помощью строк. ...

  • Разработка модулей программы /Укр./
  • ... змінних; PROCEDURE(FUNCTION) заголовки доступних процедур (функцій); Реалізаційна частина. IMPLEMENTATION початок розділу реалізації; USES модулі, які використовуються при реалізації; LABEL оголошення скритих глобальних міток; CONST оголошення глобальних констант; TYPE оголошення скритих глобальних ...

  • Модули и объекты в языке Турбо Паскаль 7.0
  • ... снимает это ограничение. Два библиотечных модуля TURBO3 и GRAPH3 введены для совместимости с ранней версией 3.0 системы Турбо Паскаль. 2 Объекты Базовым в объектно-ориентированном программировании является понятие ...

  • Інтерполювання функцій за формулою Лагранжа
  • ... або інтерполяцією. Точки x0, x1, ... ,xn називають вузлами інтерполювання, функцію P(x) - інтерполюючою функцією, а формулу f(x)»P(x), за допомогою якої обчислюють значення функції f у проміжку [a;b], - інтерполяційною формулою. Якщо функція P(x) належить до класу алгебраїчних многочленів, то і ...

  • Основні принципи модульного програмування та стеки
  • ... writeln; sts(a); writeln('упорядкований масив :'); for i:=1 to n do write(a[i]:4); writeln; end. Реалізація роботи з графічними елементами на принципах модульного програмування Для реалізації графічних зображень використовується графічний режим. Для ініціалізації графічного ...

  • Модули, записи и файлы
  • ... Flush (ее параметр - файловая пере­менная). Flush используется для завершения обменов с файлом без его закрытия. Обмены с файлами всегда реализуются через некоторый буфер в оперативной памяти, поэтому в процессе записи на файл последние записываемые элементы могут еще находиться ("застрять" ...

  • Интерполяция функции одной переменной методом Ньютона
  • ...  Writeln('Тульский государственный университет'); GoToXY(28,4);  Writeln('КАФЕДРА РАДИОЭЛЕКТРОНИКИ'); GoToXY(14,8);  Writeln('Интерполяция функции одной переменной методом Ньютона.'); GoToXY(27,9);  Writeln('Построение графика полинома.'); GoToXY(34,12);  Writeln('Вариант #7'); GoToXY ...

  • Лабораторная №6 вариант №13 по информатике, выполненная с использованием подпрограмм-процедур и подпрограмм-функций
  • ... в матрицах. Выводные данные в задании А представляют собой целые числа, так как они представляют собой количество нулей, а в задании Б – действительные числа. Лабораторная работа №6 Программирование с использованием подпрограмм пользователя. Цель работы – овладение навыками алгоритмизации задач с ...

  • Редактирование и отладка программ с помощью Pascal
  • ... в виде записи. Совокупность записей объединить в массив. Составить программу, которая обеспечивает ввод полученной информации, распечатку ее в виде таблицы, а также распечатку информации о отличниках Program Pascal; Uses crt; type student=record fio: string; d_r:1..31; {день рождения} ...

Каталог учебных материалов

Свежие работы в разделе

Наша кнопка

Разместить ссылку на наш сайт можно воспользовавшись следующим кодом:

Контакты

Если у вас возникли какие либо вопросы, обращайтесь на email администратора: admin@kazreferat.info