Разработать программу, которая обеспечивает выполнение операций сложения, вычитания и умножения над матрицами целых чисел. Выбор выполняемой операции осуществляет пользователь- Pascal(Паскаль)

uses crt;
const nmax=20;
var n:byte;
type Tmatr=array[1..nmax,1..nmax] of integer;
procedure Vvod(var mt:Tmatr;c:string);
var i,j:byte;
begin
writeln('Введите ',n*n,' элементов матрицы ',c);
for i:=1 to n do
for j:=1 to n do
 begin
  write('el[',i,',',j,']=');
  readln(mt[i,j]);
 end;
clrscr;
end;
 
procedure Vyvod(var mt:Tmatr;c:string);
var i,j:byte;
begin
writeln(c,':');
for i:=1 to n do
  begin
    for j:=1 to n do
    write(mt[i,j]:5);
    writeln;
  end;
writeln;
end;
 
procedure UmnMatr(m1,m2:Tmatr;var m:Tmatr);
var i,j,k:byte;
begin
for k:=1 to n do
for j:=1 to n do
  begin
   m[k,j]:=0;
   for i:=1 to n do
   m[k,j]:=m[k,j]+m1[k,i]*m2[i,j];
  end;
end;
 
procedure SumMatr(m1,m2:Tmatr;var m:Tmatr);
var i,j:byte;
begin
for i:=1 to n do
for j:=1 to n do
m[i,j]:=m1[i,j]+m2[i,j];
end;
 
procedure RazMatr(m1,m2:Tmatr;var m:Tmatr);
var i,j:byte;
begin
for i:=1 to n do
for j:=1 to n do
m[i,j]:=m1[i,j]-m2[i,j];
end;
 
var a,b,c:Tmatr;
    w:char;
begin
clrscr;
randomize;
write('Введите размер матриц n=');
readln(n);
Vvod(a,'A');
Vvod(b,'B');
Vyvod(a,'Matrica A');
Vyvod(b,'Matrica B');
write('Press Enter...');
readln;
repeat
clrscr;
Vyvod(a,'Matrica A');
Vyvod(b,'Matrica B');
writeln('Выберите действие');
writeln('1-сложение');
writeln('2-вычитание');
writeln('3-умножениe');
writeln('другое-выход');
write('w=');readln(w);
case w of
'1':begin
    SumMatr(a,b,c);
    Vyvod(c,'Матрица C=A+B');
    write('Press Enter...');
    readln
    end;
'2':begin
    RazMatr(a,b,c);
    Vyvod(c,'Матрица C=A-B');
    write('Press Enter...');
    readln
    end;
'3':begin
    UmnMatr(a,b,c);
    Vyvod(c,'Матрица C=A*B');
    write('Press Enter...');
    readln
    end;
else exit;
end;
until not(w in ['1'..'3']);
end.

Leave a Comment

86 − = 79