матрицю М');
For i:=1 to n do
For j:=1 to m do
read(B[i,j]); {Ввід другої матриці}
For i:=1 to n do
For j:=1 to m do
C[i,j]:=A[i,j]+B[i,j]; {Обчислення суми матриць}
For i:=1 to n do
For j:=1 to m do
writeln(C[i,j]); {Вивід результату}
End.
Результати:
n=2,m=3
1 -4 5 6 -1 0 7 -5 5
0 3 8 6 0 -9 6 3 -1
Program Rizn; {Знаходження різниці двох матриць}
Const dim1=20;
dim2=40;
Type ar1=array[1..dim1,1..dim2] of real;
ar2=array[1..dim1,1..dim2] of real;
ar3=array[1..dim1,1..dim2] of real;
Var i,j,n,m:integer;
A:ar1;
B:ar2;
C:ar3;
Begin
write('Введіть розмірність матриці М');
readln(n,m); {Ввід розмірності матриць}
write('Введіть матрицю М');
For i:=1 to n do
For j:=1 to m do
read(A[i,j]); {Ввід першої матриці}
write('Введіть матрицю М');
For i:=1 to n do
For j:=1 to m do
read(B[i,j]); {Ввід другої матриці}
For i:=1 to n do
For j:=1 to m do
C[i,j]:=A[i,j]-B[i,j]; {Знаходження їх різниці}
For i:=1 to n do
For j:=1 to m do
writeln(C[i,j]); {Вивід результату}
End.
Результати:
n=2,m=3
1 -4 5 6 -1 0 -5 -3 5
0 3 8 6 0 -9 -6 3 17
if k<>i then
For j:=n1 downto 1 do
a[k,j]:=a[k,j]-a[i,j]*a[k,i];end;
For i:=1 to n do
For j:=1 to n do
m[i,j]:=a[i,j+n];
For i:=1 to n do
For j:=1 to n do
writeln(m[i,j]:6:2); {Вивід оберненої матриці}
End.
2 4 3 -0,2 0 0,2
М= 0 -1 -5 М-1 = 0,41 0,18 -0,112
7 4 3 -0,08 -0,24 0,02
Program Dobutok; {Множення числа на матрицю}
Const dim1=20;
dim2=40;{dim2=2*dim1}
Type ar1=array[1..dim1,1..dim2] of real;
ar2=array[1..dim1,1..dim2] of real;
Var i,j,n,m:integer;
A:ar1; C:ar2;
r:real;
Begin
write('Введіть число');
readln(r); {Ввід числа}
write('Введіть розмірність матриці М');
readln(n,m); {Ввід розмірності матриці}
write('Введіть матрицю М');
For i:=1 to n do
For j:=1 to m do
read(A[i,j]); {Ввід матриці}
For i:=1 to n do
For j:=1 to m do
C[i,j]:=A[i,j]*r; {Множення матриці на число}
For i:=1 to n do
For j:=1 to m do
writeln(C[i,j]); {Вивід результату}
End.
Резуьтати:
r=5 n=3,m=2
-1 2 -5 10
M= 3 5 C= 15 25
4 -2.5 20 -12.5
Program obernena; {Знаходження оберненої матриці}
Const dim1=20;
dim2=40;{dim2=2*dim1}
Type ar=array[1..dim1,1..dim1] of real;
ar1=array[1..dim1,1..dim2] of real;
Var i,j,k,n1:integer; n:integer;Var m:ar;e:real;
t,s:real;
a:ar1;
Begin
readln(e); {Ввід точності обчислень}
write('Введіть розмірність матриці М');
readln(n); {Ввфд розмірності квадратної матриці}
write('Введіть матрицю М');
For i:=1 to n do
For j:=1 to n do
read(m[i,j]); {Ввід матриці}
n1:=2*n;
For i:=1 to n do
For j:=1 to n1 do
if j<=n then a[i,j]:=m[i,j]
else if j=n+i then a[i,j]:=1
else a[i,j]:=0;
For i:=1 to n do
begin k:=i;s:=a[i,i];
for j:=i+1 to n do
begin t:=a[j,i];
if abs(s)<abs(t) then begin s:=t;k:=j;end;end;
if abs(s)<e then begin {Знаходження визначника}
write('M-вироджена');Halt end;
For j:=i to n1 do
begin t:=a[k,j];a[k,j]:=a[i,j];a[i,j]:=t/s;end; {Знаходження елементів оберненої }
For k:=1 to n do {матриці}
рrgram dob_mas;
Const dim1=30;
dim2=40;
dim3=30;
Type ar1=array[1..dim2,1..dim1] of real;
ar2=array[1..dim3,1..dim2] of real;
ar3=array[1..dim1,1..dim3] of real;
Var i,j,k,l,n,m:integer;
A:ar1;
B:ar2;
C:ar3;
Begin
write('Введіть розмірність матриці М');
readln(n,m,l);
write('Введіть матрицю А');
For i:=1 to n do
For j:=1 to m do
read(A[i,j]);
write('Введіть матрицю В');
For i:=1 to l do
For j:=1 to n do
read(B[i,j]);
For i:=1 to m do
For j:=1 to l do
For k:=1 to n do
C[i,j]:=C[i,j]+A[k,i]*B[j,k];
For i:=1 to m do
For j:=1 to l do
writeln(C[i,j]);
End.
Результати:
n=2,m=2,l=2,
1 2 3 4
3 4 1 2
рrogram dilennya; {Ділення двох матриць}
Const dim1=20;
dim2=40;{dim2=2*dim1}
Type ar1=array[1..dim1,1..dim1] of real;
ar2=array[1..dim1,1..dim1] of real;
ar3=array[1..dim1,1..dim2] of real;
ar4=array[1..dim1,1..dim2] of real;
Var i,j,k,n1:integer; n:integer; M:ar3;e:real;
t,s:real;
A:ar1;B:ar2;c:ar4;
Begin
readln(e); {Знаходження оберненої матриці }
write('Введіть розмірність матриці М');
readln(n);
write('Введіть матрицю M');
For i:=1 to n do
For j:=1 to n do
read(M[i,j]);
write('Введіть матрицю B');
For i:=1 to n do
For j:=1 to n do
read(B[i,j]);
n1:=2*n;
For i:=1 to n do
For j:=1 to n1 do
if j<=n then a[i,j]:=m[i,j]
else if j=n+i then a[i,j]:=1
else a[i,j]:=0;
For i:=1 to n do
begin k:=i;s:=a[i,i];
for j:=i+1 to n do
begin t:=a[j,i];
if abs(s)<abs(t) then begin s:=t;k:=j;end;end;
if abs(s)<e then begin
write('M- вироджена');Halt end;
For j:=i to n1 do
begin t:=a[k,j];a[k,j]:=a[i,j];a[i,j]:=t/s;end;
For k:=1 to n do
if k<>i then
For j:=n1 downto 1 do
a[k,j]:=a[k,j]-a[i,j]*a[k,i];end;
For i:=1 to n do
For j:=1 to n do
m[i,j]:=a[i,j+n];
For i:=1 to n do
For j:=1 to n do
For k:=1 to n do
C[i,j]:=C[i,j]+B[k,i]*M[j,k]; {Множення матриці на обернену}
For i:=1 to n do
For j:=1 to n do
writeln(C[i,j]:6:2); {Вивід результату}
End.
Результати:
n=3
1 2 3 1 2 3
M= 4 5 6 B= 4 5 6
7 8 9 7 8 9
1 0 0
C= 0 1 0
0 0 1
Початок
Ввід n,m
i=1,n
j=1,m
Ввід А[i,j]
i=1,n
j=1,m
Ввід B[i,j]
i=1,n
j=1,m
C[i,j]=A[i,j]+B[i,j]
i=1,n
j=1,m
Вивід С[i,j]
Кінець
Початок
Ввід n,m
i=1,n
j=1,m
Ввід А[i,j]
i=1,n
j=1,m
Ввід B[i,j]
i=1,n
j=1,m
C[i,j]=A[i,j]-B[i,j]
i=1,n
j=1,m
Вивід С[i,j]
Кінець
Початок
Ввід n,m,l
i=1,n
j=1,m
Ввід А[i,j]
i=1,l
j=1,n
Ввід B[i,j]
i=1,m
j=1,l
k=1,n
C[i,j]=С[i,j]+А[k,i]*В[j,k]
i=1,m
j=1,l
Вивід С[i,j]
Початок
Ввід e,n
i=1,n
j=1,n
Ввід M[i,j]
n1=2*n
i=1,n
j=1,n
так j=n ні
a[i,j]=m[i,j] так j=n+1 ні
a[i,j]=1 a[i,j]=0
i=1,n
k=i s=a[i,i]
j=1,n
t=a[j,i]
s < t так
s=t k=j
s < e так М-вироджена
j=i,n1
t=a[k,j] a[k,j]=a[i,j] a[i,j]=t/s
k=1,n
k<>i
j=n1,1
a[k,j]=a[k,j]-a[i,j]*a[k,i]
i=1,n
j=1,n
M[i,j]=A[i,j=m]
i=1,n
j=1,n
Вивід M[i,j]
Кінець
Початок
Ввід e,n
i=1,n
j=1,n
Ввід M[i,j]
n1=2*n
i=1,n
j=1,n
так j=n ні
a[i,j]=m[i,j] так j=n+1 ні
a[i,j]=1 a[i,j]=0
i=1,n
k=i s=a[i,i]
j=1,n
t=a[j,i]
s < t так
s=t k=j
s < e так М-вироджена
j=i,n1
t=a[k,j] a[k,j]=a[i,j] a[i,j]=t/s
k=1,n
k<>i
j=n1,1
a[k,j]=a[k,j]-a[i,j]*a[k,i]
i=1,n