Часто некоторая последовательность операторов встречается в разных частях программы несколько раз. В таких случаях стараются избегать дублирования инструкций программы. Для этого операторы, которые встречаются в программе несколько раз, оформляют как подпрограмму; и в необходимых местах программы размещают команду вызова этой подпрограммы.
Преимущества использования подпрограмм очевидны. Во-первых, в программе нет дублирования кода, что сокращает трудоемкость создания программы, делает более удобным процесс отладки и внесения изменений. Во-вторых, значительно повышается надежность программы. Следует обратить внимание, что подпрограммы используют не только тогда, когда нужно избежать дублирования кода. Удобно большую задачу разделить на несколько подзадач, и оформить каждую такую подзадачу как подпрограмму. В этом случае значительно улучшается "читаемость" программы и, как следствие, существенно облегчается процесс отладки.
Подпрограмма – это небольшая программа, которая решает часть общей задачи. В языке Object Pascal есть два вида подпрограмм — процедура и функция. Отличие функции от процедуры заключается в том, что результатом исполнения операторов, образующих тело функции, всегда является некоторое значение, поэтому обращение к функции можно использовать в соответствующих выражениях наряду с переменными и константами.
У каждой подпрограммы есть имя, которое используется в программе для ее вызова. Подпрограммы оформляют в виде замкнутых участков программы, имеющих четко обозначенные вход и выход.
Как правило, подпрограмма имеет параметры. Различают формальные и фактические параметры.
Параметры, которые указываются в объявлении функции или процедуры, называются формальными. Параметры, которые указываются в команде вызова функции или процедуры, называются фактическими.
Параметры используются:
· для передачи данных в подпрограмму;
· для получения из результата подпрограммы.
В общем случае в качестве фактического параметра подпрограммы можно использовать выражение, тип которого должен совпадать с типом соответствующего формального параметра.
Процесс перехода к операторам подпрограммы называется вызовом подпрограммы или обращением к подпрограмме. Процесс обратного перехода от операторов подпрограммы к операторам программы, вызвавшей подпрограмму, называется возвратом из подпрограммы.