Формирование математической модели. m – размер матрицы A(m x n) по строкам ( );
Исходные данные
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.