Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Некоторые функции и процедуры модуля




ЛАБОРАТОРНАЯ РАБОТА №2

Разработка пользовательского модуля.
Использование процедур и функций модуля CRT.

 

Цель и задача работы: изучить приёмы разработки пользовательского модуля, познакомиться с процедурами и функциями модуля CRT.

Модули

Модуль – это автономно компилируемая программная единица. В модулях явным образом выделяется некоторая «видимая» интерфейсная часть, в которой сконцентрированы описания глобальных типов, констант и переменных, а также приводятся заголовки глобальных функций и процедур. Появление объектов в «видимой» интерфейсной части делает их доступными для других модулей и основной программы. Тела процедур и функций располагаются в исполняемой части модуля, которая может быть скрыта от пользователя.

Структура модуля

Модуль имеет следующую структуру:

UNIT <имя>;

INTERFACE

<интерфейсная часть>

IMPLEMENTATION

<исполняемая часть>

BEGIN

<инициирующая часть>

END.

Здесь UNIT, INTERFACE, IMPLEMENTATION – зарезервированные слова (единица, интерфейс, выполнение).

<имя> – имя модуля (правильный идентификатор)

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

Заголовок модуля и связь модулей друг с другом.

Заголовок модуля состоит из зарезервированного слова UNIT и следующего за ним имени модуля. Для правильной работы среды Турбо Паскаля это имя должно совпадать с именем дискового файла, в который помещается исходный текст модуля.

unit Global; à global.pas

Имя модуля служит для его связи с другими модулями и основной программой. Эта связь устанавливается специальным предложением

USES <список модулей>;

Здесь USES – зарезервированное слово (использует), <список модулей> – список модулей, с которыми устанавливается связь; элементами списка являются имена модулей, отделяемые друг от друга запятыми, например,

USES Crt, Global, Graph;

Если объявление USES используется, оно должно открывать раздел описаний основной программы.

Интерфейсная часть

Интерфейсная часть открывается зарезервированным словом INTERFACE. В этой части содержатся объявления всех глобальных объектов модуля (типов, констант, переменных и подпрограмм), которые должны стать доступными основной программе и/или другим модулям. При объявлении глобальных подпрограмм в интерфейсной части указывается только их заголовок.

Пример

unit vect;

 

interface

 

type

vector = array[1..3] of real;

 

function sMul(a,b: vector): real;

function Module(a: vector): real;

 

Если теперь в основной программе написать предложение

uses vect;

то в программе станут доступными тип vector и две функции из модуля vect.

Исполняемая часть

Исполняемая часть начинается зарезервированным словом IMPLEMENTATION и содержит описания подпрограмм, объявленных в интерфейсной части. В ней могут объявляться локальные для модуля объекты – вспомогательные типы, константы, переменные и блоки.

Описанию подпрограммы, объявленной в интерфейсной части должен предшествовать заголовок, в котором можно опускать список формальных параметров (и тип результата для функции). Но если заголовок подпрограммы приводится в полном виде, т.е. со списком формальных параметров и объявлением результата, то он должен совпадать с заголовком, объявленным в интерфейсной части.

Пример

implementation

 

function sMul;

begin

sMul:= a[1]*b[1]+a[2]*b[2]+a[3]*b[3];

end;

 

function Module(a: vector): real;

begin

Module:= sqrt(sMul(a,a));

end;

 

end.

 

Инициирующая часть

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

Инициирующая часть модуля (BEGIN <инициирующая часть>) необязательна и может быть опущена.

Доступ к объявленным в модуле объектам

После разработки исходного текста модуля, в результате его компиляции создается файл с расширением TPU (Turbo Pascal Unit). Поместив этот файл в один каталог с исходным текстом основной программы можно использовать в ней процедуры модуля.

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

vect.Module(a1);

Стандартный модуль CRT

В Турбо Паскале имеется восемь стандартных модулей, в которых содержится большое число разнообразных типов, констант, процедур и функций.

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

Некоторые константы модуля

const

Black    = 0; {Черный}

Blue     = 1; {Синий}

Green    = 2; {Зеленый}

Cyan     = 3; {Голубой}

Red      = 4; {Красный}

Magenta  = 5; {Фиолетовый}

Brown    = 6; {Коричневый}

LightGray = 7; {Светло-серый}

DarkGray = 8; {Темно-серый}

LightBlue = 9; {Ярко-синий}

LightGreen = 10; {Ярко-зеленый}

LightCyan = 11; {Ярко-голубой}

LightRed = 12; {Розовый}

LightMagenta = 13; {Малиновый}

Yellow   = 14; {Желтый}

White    = 15; {Белый}

Blink    = 128; {Мерцание символа}

Некоторые функции и процедуры модуля

function KeyPressed: Boolean;

Возвращает True, если на клавиатуре была нажата клавиша, и False в противном случае. Не задерживает исполнение программы.

function ReadKey: char;

Читает символ с клавиатуры без эхоповтора на экране. Приостанавливает исполнение программы до нажатия на любую клавишу, кроме Shift, Ctrl, Alt, CapsLock, NumLock, ScrollLock.

function WhereX: byte;

Возвращает горизонтальную координату текущей позиции курсора.

function WhereY: byte;

Возвращает вертикальную координату текущей позиции курсора.

procedure ClrScr;

Очищает экран и помещает курсор в верхний левый угол.

procedure ClrEol;

Удаляет все символы от текущей позиции курсора до конца строки без перемещения курсора.

procedure DelLine;

Удаляет строку, на которой находится курсор, и перемещает все строки ниже этой на строку вверх.

procedure InsLine;

Вставляет пустую строку в позицию экрана

procedure GotoXY(X,Y: Byte);

Перемещает курсор в нужное место экрана.

procedure HighVideo;

Устанавливает высокую яркость символов.

procedure LowVideo;

Устанавливает низкую яркость символов.

procedure NormVideo;

Устанавливает нормальную яркость символов.

procedure TextColor(Color: Byte);

Устанавливает цвет символов. В качестве передаваемого значения могут выступать константы цветов.

procedure TextBackground(Color: Byte);

Устанавливает цвет фона.

procedure Sound(F: word);

Включает звуковой генератор. F - частота звука, Гц.

procedure NoSound;

Выключает звуковой генератор.

procedure Delay(D: word);

Приостанавливает работу программы на указанное число миллисекунд.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...