Понятие процедуры и функции

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

В языке Object Pascal принцип модульности обеспечивается использованием подпрограмм-функций, подпрограмм-процедур ( в дальнейшем просто функций и процедур) и библиотечных модулей.

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

Функции, при обращении к ней, присваивается значение, соответствующее типу функции (смотри п. 4.3). Поэтому её можно использовать в выражениях. Например:

……………

Y := А*sqrt(Х);

……………

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

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

……………

clrcsr;

……………

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

Часть стандартных процедур и функций, таких как sin, cos и многих других, приведённых ранее в лекциях, можно использовать в программе не предпринимая каких-то специальных мер. Другие организованы в специальные библиотечные модули.

Библиотечный модуль ( в дальнейшем просто модуль) содержит описания подпрограмм (процедур и функций), которые могут использоваться пользователями. Имя этих модулей CRT, SYSTEM, DOS и другие.

Большая часть стандартных процедур и функций находятся в определённых модулях. Следовательно, чтобы использовать требуемую функцию в своей программе, необходимо подключить соответствующий модуль оператором uses c указанием имени модуля. Этот оператор необходимо поставить перед описаниями, то есть после оператора program. Например:

Uses CRT;