Подпрограммы помогают реализовать принцип структурного прог-ия связанный с нисходящим проектированием программы. При обращении к подпрограмме вместо формальных параметров указываются фактические параметры. Список формальных параметров отражает исходные данные и результаты подпрограммы. При обращении к подпрограмме на месте формальных параметров задаются фактические, т.е. это вполне определённые значения величин подлежащих обработки. М/у формальными и фактическими параметрами должны выполнятся следующие соответствия:
1. по количеству;
2. по типу: на соответствующих местах должны стоять величины одного и того же типа;
3. по смыслу: на соответственных местах должны стоять параметры, в которые вкладывается один и тот же смысл.
1)Параметры-значения: В заголовке подпро-мы параметр-значения описываются без каких-то предшествующих служебных слов. Механизм взаимодействия: при вызове подпро-мы для парам.-значения в стеке выделяется соот-ый объём памяти, куда копируется соот-ый фактический параметр. В дальнейшем все действия выполняются над этой копией, не затрагивая при этом фактического параметра. После завершения работы подпро-мы память в стеке освобождается от копии формального параметра. Значение фактического параметра можно изменять, после завершения программы посмотреть чему равен параметр-значения нельзя. Преимущества и недостатки:«+»изменения формального параметра не влечёт за собой изменения параметра-значения;«-»копирования фактического параметра занимает дополнительный объём памяти, совпадающий с объёмом фактического параметра. 2)Параметры-переменные:описываются в заголовке подпро-мы после служебного слово VAR. Обычно параметр-переменной используется для результата. Если в заголовке встречается несколько параметров-переменных имеющие разные типы, то для каждого из них задаётся своё VAR. При использовании параметров-переменных копии фактического параметра не создаётся, т.к. передаётся адрес фактического параметра. И т.о. формальный и фактически параметр имеют на всём протяжении подпро-мы один и тот же адрес. При изменении одного из параметров происходит изменение и другого. Именно за счет этого и происходит передача результата работы подпро-мы в основную программу. Достоинства и недостатки: «+»Экономия памяти;«-» возможные неконтролируемые изменения фактического параметра.
3)Параметры-константы:описываются после служебного слова const. Перед параметром каждого типа нужно поставить своё const. Передача фактического параметра осуществляется по адресу. Отличие от параметров-переменых заключается в том, во-первых, их запрещается менять внутри подпро-мы; во-вторых, они не м/б использованы в качестве фактических параметорв других подпрограмм.