Анализ показывает, что решение задачи требует многократного вычисления суммы элементов каждой строки двумерных массивов A и B. В первом случае m элементов сумм массива A, во втором – t элементов сумм массива B.
Результаты вычислений для положительных сумм каждой исходной матрицы представляются одномерными массивами SSA(mp) и SSB(tp), где mp и tp – размеры созданных массивов. Такое вычисление удобно выполнить в циклическом процессе, оформленном дополнительным алгоритмом, входным параметром которого является исходный двумерный массив, а выходным – результирующий одномерный.
Для рассматриваемой задачи в качестве входных формальных параметров дополнительного алгоритма выберем, например, имя массива Z и его размеры kxp. Тогда в качестве выходных параметров можно использовать одномерный массив SSZ размером d (количеством положительных сумм). Следовательно, в качестве формальных параметров выбраны Z(kxp), SSZ(d).
Для работы с подпрограммой организуются обращения к ней из основного алгоритма. Естественно, что в обращениях используются входные и выходные фактические параметры.
Поэтому, задавшись именем подпрограммы sum_str, сформируем два обращения к ней: для расчёта положительных сумм элементов строк массива A – sum_str(A(mxn) ,SSA(mp)) и для тех же вычислений с массивом B – sum_str(B(txs), SSB(tp)). Первый параметр в каждом обращении является входным и определяет имя и размеры передаваемого в подпрограмму двумерного массива. Второй параметр является выходным, предназначенным для получения одномерного массива значений положительных сумм строк из подпрограммы.