
- •Программирование процессов с подпроцессами
- •Составление алгоритма решения
- •Программирование задачи
- •Подпроцесс с аргументом – одномерным массивом и одним результатом
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Подпроцесс с несколькими результатами
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Подпроцесс с результатом – массивом
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Заключение
- •Вопросы для контроля
-
Подпроцесс с результатом – массивом
Рассмотренные примеры позволяли возвращать результаты в виде одного или нескольких разрозненных значений. При этом входными параметрами подпрограмм были переменные и одномерные массивы. В некоторых задачах необходима обработка в подпрограмме многомерных массивов, а также возвращение значений в виде одно- и многомерных массивов. Рассмотрим особенности программирования таких вычислительных процессов на конкретной задаче (10.4) о суммах строк двумерных матриц.
Постановка задачи
Вычислить суммы элементов каждой строки двумерных массивов A(m x n) и B(t x s). Положительные суммы каждой исходной матрицы сформировать в одномерные массивы.
Формирование математической модели
Исходные данные
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 x 4) Матрица B(2 x 3)
8,53 |
9,3 |
5,7 |
-3,5 |
|
1,6 |
7,3 |
15 |
46 |
-32,1 |
28,5 |
-52,6 |
|
4,2 |
-10,18 |
12 |
4,7 |
56 |
65 |
-7,2 |
|
|
|
|
Расчетные зависимости
– сумма элементов i-строки
матрицы А, при
.
Модель создаваемого массива для матрицы А:
(ssa1,
ssa2,
. . . , ssad,
. . . , ssamp)
при ,
где mp – количество положительных сумм в матрице А,
для всех
.
,
– сумма элементов i-строки
матрицы B, при
.
Модель создаваемого массива для матрицы B
(ssb1,
ssb2,
. . . , ssbd,
. . . , ssbtp)
при ,
где tp – количество положительных сумм в матрице В,
для всех
.