Описание подпрограммы


Подпрограммы-процедуры и подпрограммы-функции

Подпрограммы

Подпрограммы решают некоторые самостоятельные подзадачи, их выделение в качестве самостоятельных поименованных модулей оправдано по многим соображениям «хорошего» программирования. Такая организация упрощает логическую структуру полной программы, за счет этого облегчает и ускоряет ее написание и отладку. Появляется возможность использовать готовые наработки и создавать новую программу в основном из готовых «кубиков». В программе выделяют главный модуль (вызывающий) и одну или несколько подпрограмм (вызываемых модулей). В подпрограмме может быть свой выделенный модуль — собственная подпрограмма и т. д. Это вложенные подпрограммы.

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

Основными разновидностями подпрограмм являются процедуры и функции. У процедур шире возможности по обмену параметрами: принимать из вызывающего модуля и возвращать ему один или несколько параметров или не принимать (не возвращать) ни одного; само по себе имя процедуры не выполняет роли носителя значений некоего элемента данных.

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

В языке Си единственный вид подпрограмм — это функции с возможностями процедур.

Оно состоит из заголовка и тела. Заголовок начинается ключевым словом ЯП, указывающим разновидность подпрограммы, затем идет имя подпрограммы и список формальных параметров (в круглых скобках через запятую). Тело подпрограммы строится по тем же правилам, что и простая программа. Оно состоит из описаний и операторов, которые с помощью формальных параметров указывают необходимые преобразования данных.

С именами формальных параметров связаны некоторые области памяти ЭВМ. Формальные параметры не имеют числовых значений — это как бы макеты «настоящих» переменных, вроде символов в формулах из справочников. Описание типов собственных переменных подпрограммы (то есть локальных) частично дается в заголовке и частично в теле подпрограммы, либо полностью дается в заголовке или в теле.