Цель лабораторной работы: изучить возможности DELPHI для написания подпрограмм и создания модулей. Составить и отладить программу, использующую внешний модуль Unit с подпрограммой.
Подпрограмма - это именованная, определенным образом оформленная группа операторов, которая может бить вызвана любое количество раз из любой точки основной программы. Подпрограммы используется в том случае, когда одна и та же, последовательность операторов в тексте программы повторяется несколько раз. Этa последовательность заменяется вызовом подпрограммы, содержащей необходимые операторы. Подпрограммы также применяются для создания специализированных библиотечных модулей, содержащих набор подпрограмм определенного назначения, для использованияих другими программистами.
Подпрограммы подразделяются на процедуры и функции. Процедура имеет следующую структуру:
Procedure <имя процедуры> ([список формальных параметров]);
Const [описание используемых констант];
Type [описание используемых типов];
Var [описание используемых переменных];
Begin
< операторы>
R esult:=; //занесение результата вычислений в Result
End;
Прцедуры и функции могут быть использованы в качестве формальных параметров подпрограмм. Для этого определяется тип:
Type<имя>= function ([список формальных параметров]):<тип результата>;
или
Type <имя>= procedure ([список формальных параметров]);
Имя процедуры или функции должно быть уникальным в пределах программы. Список формальных параметров необязателен и может отсутствовать. Если же он есть, то в нем перечисляются через точку с запятой имена формальных параметров и их типы. Имеется три вида формальных параметров параметры-значения, параметры-переменные, параметры-константы. При вызове подпрограммы передача данных для этих видов осуществляются по-разному. Параметры-значения копируются, и подпрограмма работает с их копией, поэтому при вызове на месте такого параметра можно ставить арифметическое выражение. При использовании параметров-переменных (в описании перед ними ставится Var) и параметров-констант в подпрограмму передается адрес, и она работает с самой переменной. С помощью параметров-переменных подпрограмма передает результаты своей работы вызывающей программе.
В функциях используется специальная переменная Result, интерпретируемая как значение, которое вернет в основную программу функция по окончании своей работы.
В язык Object Pascal встроен ряд наиболее часто употребляемых процедур и функций, которые являются частью языка и вызываются без предварительного определения в разделе описаний.
Использование модулей
Модуль - автономно компилируемая програмная единица, включающая в себя процедуры, функции, а также различные компоненты раздела описаний. Структура модуля представлена в п.1.2. и содержит следующие основные части: заголовок, интерфейсная часть, исполняемая, инициируюшая и завершаюшая.
Заголовок состоит из зарезервированного слова Unit и следующего за ним имени модуля, которое должно совпадать с именем дискового файла. Использование имени модуля в разделе Uses основной программы приводит к установлению связи модуля с основной программой.
Интерфейсная часть расположена между зарезервированными словами Interface и Implementation и содержит объявление тех объектов модуля, которые должны быть доступны другим программам.
Исполняемая часть начинается зарезервированным словом implementation и содержит описание процедур и функций, объявленных в интерфейсной части. Она может также содержать вспомогательные типы, константы, переменные, процедуры и функции которые, будут использоваться только в исполняемой части и не будут доступны внешним программам.
Инициирующая часть начинается зарезирвированным словом Initialization и содержит операторы, которые исполняются до передачи управления основной программе.
Завершающая часть начинается зарезервированным словом Finalization и выполняется в момент окончания работы программы. Инициирующая и завершаюшая части модуля используются крайне редко.