Некоторые функции и процедуры модуля
Стр 1 из 2Следующая ⇒ ЛАБОРАТОРНАЯ РАБОТА №2 Разработка пользовательского модуля.
Цель и задача работы: изучить приёмы разработки пользовательского модуля, познакомиться с процедурами и функциями модуля 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|