Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая по ит.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
484 Кб
Скачать
☆

2.4 Стандартные модули

Turbo Pascal имеет восемь стандартных модулей, в которых, собственно, и содержатся все упоминаемые в книге систем­ные процедуры и функции. Имена этих модулей следующие:

SYSTEM

DOS

CRT

PRINTER

OVERLAY

GRAPH

TORBO3

GRAPHS

Программные ресурсы, сосредоточенные в стандартных модулях, образуют мощные пакеты системных средств, кото­рые обеспечивают высокую эффективность и широкий спектр применений системы Turbo Pascal.

Каждый модуль хранится в одноименном TPU-файле в сис­темном каталоге Turbo Pascal. Кроме того, обычно модули System, Dos, Crt, Printer и Overlay входят в состав сис­темного библиотечного файла TURBO. TPL. Для того, чтобы воспользоваться ресурсами стандартного модуля, необходимо указать его имя в спецификации использования по обычным правилам. Исключение сделано для модуля System, имя кото­рого можно не указывать, так как содержащиеся в нем ресурсы подключаются автоматически к любой программе.

Каждый стандартный модуль содержит логически связан­ную совокупность типов, констант, переменных и подпро­грамм, относящихся к определенной области применений. Да­лее приводится общая характеристика стандартных модулей.

В модуль System входят все процедуры и функции автор­ской версии языка Pascal, подпрограммы стандартного Пас­каля, а также много дополнительных подпрограмм общего характера, в частности, ориентированные на конкретную операционную среду.

Модуль Dos содержит средства доступа к операционной системе и по существу является программным представлени­ем системного интерфейса MS-DOS.

Модуль Crt обеспечивает практически полный спектр возможностей для доступа к экрану дисплея в текстовом ре­жиме. Кроме того, в данный модуль включены средства чте­ния информации с клавиатуры (включая расширенные коды клавиш) и простейшего управления звуком.

Модуль Printer содержит единственный интерфейсный элемент - переменную Lst стандартного типа text, системно связанную с логическим устройством PRN (то есть с печатаю­щим устройством, если оно имеется в конфигурации). Испо­льзование этой переменной в стандартных процедурах Write и WriteLn приводит к выводу информации на печать.

Модуль Overlay предоставляет средства для организа­ции так называемых оверлейных программ, позволяющих обеспечить достаточно эффективное выполнение больших программных систем, размер которых превышает объем до­ступной оперативной памяти.

Модуль Graph объединяет многочисленные программ­ные средства управления графическим режимом работы дис­плея. Данный модуль обеспечивает использование всех воз­можностей наиболее распространенных типов дисплейных адаптеров - CGA, EGA, VGA, Hercules и т.п. как для монохро­мных, так и для цветных дисплеев, и позволяет создавать раз­нообразные и эффективные графические программы.

Модули Turbo3 и Graph3 обеспечивают совместимость с данной версией системы Turbo Pascal тех программ, кото­рые были разработаны для ранней версии 3.0.

2.5 Пример модуля

В данном разделе содержится законченный пример модуля, в котором сосредоточены средства работы с памятью типа "стек". Обратите внимание, что способ конкретной реализа­ции стека скрыт в разделе implementation; поэтому переход к другой реализации стека (не в виде массива, а, например, в виде связанного списка) не повлечет за собой необходимость изменения программ, использующих этот модуль (эти про­граммы "не узнают" о таком изменении).

unit StackOps; { Операции над стеком целых }

interface

procedure Push ( Elem:integer );

function Pop : integer;

function Empty : boolean;

function Full : boolean;

implementation

{ Стек реализован в виде линейного массива элементов;

переменная Тор отмечает текущую вершину стека }

const

Мах = 100;

var

Stack array[1..Max] of integer;

Top : integer;

procedure Push; { помещение элемента в вершину стека }

begin

if Top>Max then Exit;

Stack[Top] := Elem;

inc(Top)

end;

function Pop; { извлечение элемента из вершины стека }

begin

Рop := 0 ;

if Top=1 then Exit;

dec(Top);

Pop := Stack[Top]

end;

function Empty; { проверка на пустоту стека }

begin

Empty := (Top=1)

end;

function Full; { проверка на заполненность стека }

begin

Full := (Тор>Мах)

end;

begin

{ инициализация: первоначально стек пуст }

Тор := 1

end.