Анализ показывает, что решение задачи требует двукратного вычисления суммы и произведения элементов массива. В первом случае n элементов массива X, во втором – m элементов массива Y. Такое вычисление удобно выполнить в циклическом процессе, оформленном дополнительным алгоритмом. Так как результат вычислений в дополнительном алгоритме (подпрограмме) – две величины, то решение задачи требует использования дополнительной функции, возвращающей более одного результата.
Особенностью подпрограмм с несколькими возвращаемыми значениями является использование в них входных и выходных формальных параметров.
Входнымиформальными параметрами называются такие, значения которым передаются из основного алгоритма.
Выходнымиформальными параметрами называются те, которые передают результаты расчётов из дополнительного алгоритма (подпрограммы) в основной.
Для рассматриваемой задачи в качестве входных формальных параметров выберем, например, имя массива Z и его размер k. Тогда в качестве выходных параметров можно использовать SZ (сумма Z) и PZ (произведение Z). Следовательно, в качестве формальных параметров выбраны Z, k, SZ, PZ.
Для работы с подпрограммой организуются обращения к ней из основного алгоритма. Естественно, что в обращениях используются входные и выходные фактические параметры.
Входными фактическими параметрами называются такие, численные значения которых передаются в подпрограмму.
Выходнымифактическими параметрами называются такие, которые принимают переданные из подпрограммы результаты.
Поэтому, задавшись именем подпрограммы sp, сформируем два обращения к ней: для расчёта суммы и произведения элементов массива X – sp(X(n), SX, PX) и для тех же вычислений с массивом Y – sp(Y(m), SY, PY). Первый параметр в каждом обращении является входным и определяет имя и размер передаваемого в подпрограмму массива. Остальные являются выходными, предназначенными для получения значений суммы и произведения из подпрограммы.