for j:=1 to n do
begin
sum:=0;
for k:=1 to l do
sum:=sum+p[i,k]*q[k,j];
r[i,j]:=sum;
end;
end;
{основная программа}
begin
{очистка экрана}
clrscr;
{ввод из файла размеров и элементов матриц C,B,A}
assign(f,'muxamed.inp');
reset(f);
read(f,m,n);
for i:=1 to m do
for j:=1 to n do read(f,c[i,j]);
for i:=1 to m do
for j:=1 to n do read(f,b[i,j]);
for i:=1 to m do
for j:=1 to n do read(f,a[i,j]);
close(f);
{вывод на экран матрицы C}
writeln('матрица C');
vivod(c,m,n);
{вывод на экран матрицы B}
writeln('матрица B');
vivod(b,m,n);
{вывод на экран матрицы A}
writeln('матрица A');
vivod(a,m,n);
readln;
{вычисление и вывод на экран матрицы CТ}
transpor(c,m,n,ct);
writeln('матрица CT');
vivod(ct,n,m);
readln;
{вычисление и вывод на экран матрицы CT*B}
mult(ct,b,m,n,m,ctb);
writeln('матрица CT*H');
vivod(ctb,m,n);
readln;
{вычисление и вывод на экран матрицы АТ}
transpor(a,m,n,at);
writeln('матрица АТ');
vivod(at,m,n);
{вычисление и вывод на экран матрицы 3*AT}
matrnac(at,m,n,atc);
writeln('матрица 3*AT');
vivod(atc,m,n);
readln;
{вычисление и вывод на экран матрицы CT*B+3*AT)}
slog(ctb,atc,m,n,ctbatc);
writeln('матрица CT*B+3*AT');
vivod(ctbatc,m,n);
readln;
end.
7. Исходные данные
Ниже представлен файл данных – muxamed.inp, в котором представлены данные о каждой матрице: сначала указаны количества строк и столбцов каждой матрицы, а потом идут сами элементы матрицы.
3 3
1 3 2
5 4 5
6 2 1
2 6 2
3 3 5
1 4 1
-2 1 -5
3 2 -3
-4 5 4
рис.1 Исходные данные.
8. Результаты счёта
Ниже представлены результаты счёта матриц в Паскале, как видно, они совпадают с результатами, полученными в тесте, следовательно все подпрограммы и сама основная программа составлены и работают правильно.
матрица C
1.0 3.0 2.0
5.0 4.0 5.0
6.0 2.0 1.0
матрица B
2.0 6.0 2.0
3.0 3.0 5.0
1.0 4.0 1.0
матрица A
-2.0 1.0 -5.0
3.0 2.0 -3.0
-4.0 5.0 4.0
матрица CT
1.0 5.0 6.0
3.0 4.0 2.0
2.0 5.0 1.0
матрица CT*H
23.0 45.0 33.0
20.0 38.0 28.0
20.0 31.0 30.0
матрица АТ
-2.0 3.0 -4.0
1.0 2.0 5.0
-5.0 -3.0 4.0
матрица 3*AT
-6.0 9.0 -12.0
3.0 6.0 15.0
-15.0 -9.0 12.0
матрица CT*B+3*AT
17.0 54.0 21.0
23.0 44.0 43.0
5.0 22.0 42.0
Рис.2 Результаты счета в Pascal.
Заключение.
Благодаря проведенной работе, мы получили навыки, позволяющие в дальнейшем использовать среду программирования Pascal, применять различные функции и процедуры для вычисления матричных выражений. Ведь известно, что матрицы широко используются при проведении разнообразных вычислений, в том числе и при решении систем линейных уравнений. С помощью Pascal можно вычислять матрицы практически любой сложности.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.