Исходные данные
m – размер матрицы A(m x n) по строкам ();
n – размер матрицы A(m x n) по столбцам ().
Модель матрицы A(m x n):
a11 | ... | a1j | ... | a1n |
a21 | ... | a2j | ... | a2n |
... | ... | ... | ... | ... |
ai1 | ... | aij | ... | ain |
... | ... | ... | ... | ... |
am1 | ... | amj | ... | amn |
i – текущий индекс номера строки;
j – текущий индекс номера столбца;
1 £ i £ m – диапазон изменения i;
1 £ j £ n – диапазон изменения j;
t – размер матрицы B(t x s) по строкам ();
s – размер матрицы B(t x s) по столбцам ().
Модель матрицы B(t x s):
b11 | ... | b1j | ... | b1s |
b21 | ... | b2j | ... | b2s |
... | ... | ... | ... | ... |
bi1 | ... | bij | ... | bis |
... | ... | ... | ... | ... |
bt1 | ... | btj | ... | bts |
i – текущий индекс номера строки;
j – текущий индекс номера столбца;
1 £ i £ t – диапазон изменения i;
1 £ j £ s – диапазон изменения j;
Зададимся конкретными массивами
Матрица A(3 x4) Матрица B(2 x3)
8,53 | 9,3 | 5,7 | -3,5 | 1,6 | 7,3 | ||
-32,1 | 28,5 | -52,6 | 4,2 | -10,18 | |||
4,7 | -7,2 |
Расчетные зависимости
– сумма элементов i-строки матрицы А, при .
Модель создаваемого массива для матрицы А:
(ssa1, ssa2,..., ssad,..., ssamp) при ,
где mp – количество положительных сумм в матрице А,
для всех .
, – сумма элементов i-строки матрицы B, при .
Модель создаваемого массива для матрицы B
(ssb1, ssb2,..., ssbd,..., ssbtp) при ,
где tp – количество положительных сумм в матрице В,
для всех .
Выбор метода решения
Анализ математической модели показывает, что решение задачи требует многократного вычисления суммы элементов каждой строки двумерных массивов A и B. В первом случае m элементов сумм массива A, во втором – t элементов сумм массива B.
Результаты вычислений для положительных сумм каждой исходной матрицы требуется представить одномерными массивами SSA(mp) и SSB(tp), где mp и tp – размеры созданных массивов. Такое вычисление удобно выполнить смешанным процессом, оформленным дополнительным алгоритмом. Входным параметром этого алгоритма будет исходный двумерный массив, а выходным – результирующий одномерный.
Для рассматриваемой задачи в качестве входных формальных параметров дополнительного алгоритма выберем, например, имя массива Z и его размеры k, p. Тогда в качестве выходных параметров можно использовать одномерный массив SSZ размером d (количеством положительных сумм). Следовательно, в качестве формальных параметров выбраны Z, k, p, SSZ, d.
Для работы с подпроцессом необходимы обращения к нему из основного алгоритма. Естественно, что в обращениях должны использоваться входные и выходные фактические параметры.
Поэтому, задавшись именем подпрограммы sum_str, сформируем два обращения к ней: для расчёта положительных сумм элементов строк массива A – sum_str(A, m, n,SSA, mp) и для тех же вычислений с массивом B – sum_str(B, t, s, SSB, tp). Два начальных параметра в каждом обращении являются входными, определяя имя и размеры передаваемого в подпрограмму двумерного массива. Два последних параметра являются выходными, предназначенными для получения одномерного массива значений положительных сумм строк из подпрограммы.
Следовательно, рациональный метод решения задачи – вычислительный процесс с одним подпроцессом при использовании основного алгоритма с обращениями sum_str(A, m, n, SSA, mp) и sum_str(B, t, s, SSB, tp) и дополнительного алгоритма с формальными параметрами Z, k, p, SSZ, d.