Организация связи основной программы с подпрограммой
Часто некоторую последовательность операторов требуется выполнить в нескольких местах программы при различных исходных данных.
Часто не тратить время и не загромождать программу многократным повторением этих операторов целесообразно оформить их как вспомогательный программный модуль со своим именем, называемый ПОДПРОГРАММОЙ, а в соответствующих местах программы, являющейся основной (головной) ведущей единицей просто обратиться к ней (сослаться).
В качестве простых примеров использования подпрограмм в вычислительном процессе можно рассмотреть стандартные подпрограммы вычисления тригонометрических и иных функций (синус, логарифм и т.д.)
Для организации совместной работы основной программы с подпрограммой в нужных местах основной программы выполняется обращение к подпрограмме (вызов).
При вызове подпрограммы внутри основной программы указывается ИМЯ подпрограмы и какие исходные данные ей необходимо передать - фактические параметры, которые перечисляются в круглых скобках. Фактическими параметрами могут служить константы и переменные основной программы. Их значения могут использоваться и изменяться внутри подпрограммы.
Подпрограмма должна иметь имя, указанное в обращении, которое выбирается по тем же правилам, что имя переменных и объявляется в заголовке. В качестве аргументов объявляются формальные параметры. Формальными их называют потому, что они не имеют собственных значений. В качестве формальных параметров используют переменные.
Между формальными и фактическими параметрами устанавливается взаимно- однозначное соответствие по их порядку следования в списке. В момент вызова подпрограммы каждый формальный параметр принимает значение соответствующего фактического параметра основной программы и начинается выполнение вычислительной процедуры подпрограммы. Соответствие устанавливается по порядковому номеру формального и фактического параметров.
Результаты приведенных в подпрограмме расчетов автоматически возвращаются в основную программу. Таким образом, осуществляется двусторонний обмен информацией между основной программой и подпрограммой: из основной программы в подпрограмму передаются исходные данные, а обратно результаты ее выполнения.
Схема алгоритмарешения задач с использованием подпрограммы может быть организована в виде двух отдельных схем алгоритмов - основного и вспомогательного. Причем при составлении схемы вспомогательного алгоритма, реализуемого в виде подпрограммы, в схеме появляются надписи ВХОД и ВЫХОД в начале и конце алгоритма соответственно. Обращение к вспомогательному алгоритму выполняется в схеме основного алгоритма с помощью специального блока.
В ПАСКАЛЕ различают 2 вида подпрограмм: ФУНКЦИЯиПРОЦЕДУРА.
Главное их различие состоит в количестве результатов, возвращаемых в основной алгоритм(программу). Функцию целесообразно использовать, если результатом вычисления является только одно значение. Процедура универсальна. Она используется, когда результатом является произвольное количество значений, в том числе и ни одного.