Разработка программ для вычисления матричного выражения, страница 4

Анализ подпрограмм:

I. подпрограмма-процедура для транспонирования матрицы (имя tr)

а). Таблица переменных подпрограммы

Имя переменной

Тип значений

Примечание

i, j

integer

текущие индексы

б). Схема алгоритма

II. подпрограмма-процедура для умножения двух матриц
(имя mult)

а). Таблица переменных подпрограммы

Имя переменной

Тип значений

Примечание

i, j

integer

текущие индексы

s

real

сумма


б). Схема алгоритма

III. подпрограмма-процедура для вывода матрицы на экран (имя mout)


а). Таблица переменных подпрограммы

Имя переменной

Тип значений

Примечание

i, j

integer

текущие индексы

б). Схема алгоритма

4. Программа

I. непосредственно (с использованием циклических процессов)

program matrix;

{вычисление матричного выражения с выводом промежуточных результатов}

type mas=array[1..10,1..10] of real; {описание новой переменной}

{описание массивов и переменных}

var A,B,C,AT,ATB,ATB3C,ATB3CT: mas;

i,j,k,ma,mb,mc,na,nb,nc:integer;

s: real;

f: text; {описание файловой переменной}

{основная программа}

begin {начало операторной части}

{установка соответствия файловой переменной с файлом 'matr.inp'}

assign(f,'matr.inp');

reset(f); {открытие файла 'matr.inp' для чтения}

read(f,ma,na); {ввод размеров и элементов матрицы А из файла 'matr.inp'}

for i:=1 to ma do

for j:=1 to na do read(f,A[i,j]);

writeln('матрица A='); {вывод матрицы А на экран}

for i:=1 to ma do begin

for j:=1 to na do write(A[i,j]:5:0);

writeln;

end;

writeln;

read(f,mb,nb); {ввод размеров и элементов матрицы В из файла 'matr.inp'}

for i:=1 to mb do

for j:=1 to nb do read(f,B[i,j]);

writeln('матрица B='); {вывод матрицы В на экран}

for i:=1 to mb do begin

for j:=1 to nb do write(B[i,j]:5:0);

writeln;

end;

writeln;

read(f,mc,nc); {ввод размеров и элементов матрицы С из файла 'matr.inp'}

for i:=1 to mc do

for j:=1 to nc do read(f,C[i,j]);

writeln('матрица C='); {вывод матрицы С на экран}

for i:=1 to mc do begin

for j:=1 to nc do write(C[i,j]:5:0);