Часть полного текста документа:Содержание Рекурсия . . . . . . . . . . . . . . . . . . . . . . . . . . Пример 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, т.е. ............ |