Формирование математической модели. 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.