Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
254
Добавлен:
02.05.2014
Размер:
3.54 Mб
Скачать

Подпрограммы пользователя

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

Имя подпрограммы и ее параметры записываются в заголовке подпрограммы. Различают формальные параметры– параметры, определенные в заголовке подпрограммы, ифактические параметры– выражения, задающие конкретные значения при обращении к подпрограмме.

Различают два типа пользовательских подпрограмм: процедуры (Procedure)и функции (Function). Главное отличие функции от процедуры заключается в том, что результат работы функции – единственное значение, а результат работы процедуры – одно значение, несколько значений или ни одного. Например, можно написать процедуру, которая:

  • отображает полученные результаты в виде диаграммы в графическом окне;

  • вычисляет площадь и периметр многоугольника;

  • решает задачу по преобразованию векторов;

  • изменяет значения свойств объектов.

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

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

Процедуры и функции определяются в разделе описания функций и процедур.

Пользовательские процедуры

Структура пользовательской процедуры:

Procedure Имя процедуры [(Список формальных параметров с указанием типа каждого из них)]; [Раздел описаний локальных переменных] Begin Операторы тела процедуры End;

Список формальных параметров может включать:

  • входные параметры или параметры-значения, значения которых должны быть установлены до начала работы данной процедуры (определяют исходные данные для работы процедуры);

  • выходные параметры или параметры-переменные, получающие свое конкретное значение в результате работы процедуры (определяют выходные данные процедуры). Перед перечислением выходных в списке формальных параметров должно стоять ключевое словоVar.

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

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

Обращение к процедуреосуществляется в основной программе путем задания имени процедуры и списка фактических параметров:

Имя процедуры [(Cписок фактических параметров)];

При вызове процедуры формальные параметры заменяются фактическими в порядке их следования. Количество, типы и порядок следования формальных и фактических параметров должно в точности совпадать!