Цитата:
Сообщение от Ekama
Выполнить действия над правильными матрицами A[n,n] и B[n,n]: (2,5A+b^2)(A-B^2)
|
Так, ну вот Вам программа. Сразу оговорюсь: сделана и оттестирована в среде Free Pascal, работает (см. скрин), а за возможные глюки псевдопаскаля АВС я не отвечаю - у меня подобной дряни не водится.
Код:
Const
N=5;
Type
Matrix=Array[1..N,1..N] of real;
Var
A,B,C:Matrix;
i,j:Integer;
Function Mult(M1:Matrix;Q:real):Matrix;
var i,j:Integer;
begin
for i:=1 to N do
for j:=1 to N do
Mult[i,j]:=M1[i,j]*Q;
end;
Function Sum(M1,M2:Matrix):Matrix;
var i,j:Integer;
begin
for i:=1 to N do
for j:=1 to N do
Sum[i,j]:=M1[i,j]+M2[i,j];
end;
Function Prod(M1,M2:Matrix):Matrix;
var
i,j,k:Integer;
Prd:real;
begin
for i:=1 to N do
for j:=1 to N do
begin
Prd:=0;
for k:=1 to N do
Prd:=Prd+M1[i,k]*M2[k,j];
Prod[i,j]:=Prd;
end;
end;
Begin
Randomize;
For i:=1 to N do
For j:=1 to N do
begin
A[i,j]:=(0.8-Random)*10;
B[i,j]:=(0.2-Random)*10;
end;
Writeln('Matrix A: Matrix B:');
For i:=1 to N do
begin
For j:=1 to N do Write(A[i,j]:6:1);
Write(' ');
For j:=1 to N do Write(B[i,j]:6:1);
Writeln;
end;
Writeln;
Writeln('Result:');
C:=Prod(Sum(Mult(A,2.5),Prod(B,B)),Sum(A,Mult(Prod(B,B),-1)));
For i:=1 to N do
begin
For j:=1 to N do Write(C[i,j]:12:1);
Writeln;
end;
Readln;
End.