ЭВМ программа

 

Рассмотрим пример систематического составления алгоритма и программы для решения на ЭВМ достаточно сложной задачи обра­ботки данных.

Четвертая задача: Определить суммы элементов столбцов в матрице Anxm:

 

 

Приведем обобщенную постановку задачи и описание соответст­вующих общего метода решения и сценария диалога.

Постановка задачиСценарий

Дано: Матрица <N>´<M>

(a11 … a1N) < a11> ... < a1N >

(... ... ... ) - матрица Anxm ... ... ...

(aMl … aMN) < aMl > … < aMN >

Треб.: Суммы элементов:

(S1 ..., SN) - суммы столбцов <S1> ... <SN>

Где:

Si = аi1 + ...+ аiM

[i = (1… N)]

При: N > 0, М > 0.

 

Метод вычисленийПредставление данных

sk0 = 0 matr: ' матрица Anm:

sk1 = ak1+ sk1-1 data 3, 4

[1 = (1 ... M)] data I, 2, 3, 4

Sk = SkN data 0, 1, 2, 3

[k = (1 ... N)] data 0, 0, 1, 2

 

В предлагаемой ниже программе для представления матриц ис­пользуются операторыdata. В первом из этих операторов записаны размеры, а в каждом последующем операторе - строки матрицы:

АлгоритмПрограмма

алг «сумма строк матрицы» ' сумма строк матрицы

нач cls

чтение (п, т) read n, m

если п > 0 и т > 0 то if N > 0 and М > 0 then

массив А[1:п,1:т] dim A (N,M)

массив S[1:n] dim S(n)

ввод-вывод_матрицы gosub vvod 'ввод-матрицы

суммирование_строк gosub sum 'суммирование

от k = 1 до п цикл for k= 1 to n

выв (s[k]) ? s[k]

кцикл next k

все end if

кон end

 

алг «суммирование строк» sum: 'суммирование строк

нач ' нач

от k = 1 до N цикл for k = 1 to n

s[k] := 0 s[k] = 0

от l = 1 до М цикл for I = 1 to m

s[k] := s[k] + A[k,l] s[k] = s[k] + a[k,l]

кцикл next I

кцикл next k

кон return

 

алг «ввод-вывод_матрицы» vvod: 'ввод-вывод_матрицы

нач ' нач

вывод («Матрица», N, «х», М) ? «Матрица»; m; «х»; m

от k = 1 до N цикл for k = 1 to n

от I = 1 до М цикл for l = 1 to m

чтение (A [k,l]) read A (k,l)

вывод (A [k,l]) ? A (k,l)

кцикл next 1

нов_строка ?

кцикл next k

кон return