Помогите, пожалуйста, доработать код.Думаю ошибок там много(((
program lab_a; {Описать класс, реализующий тип данных "вещественная матрица" и работу с ними.Методы класса должны обеспечивать: сложение, вычитание, умножение матриц (умножение, как на другую матрицу, так и на число); вычисление транспонированной матриц; проверку типа матрицы (квадратная, диагональная, нулевая, единичная); Написать программу, демонстрирующую работу с этим классом.}
{$APPTYPE CONSOLE}
uses SysUtils;
type veshmatr=class X:array of array of Double; n,m:integer;
Procedure vvod (var B:veshmatr); Procedure vivod ( var B:veshmatr); Procedure slosh(const A,B:veshmatr; var C:veshmatr); Procedure vichet(const A,B:veshmatr; var C:veshmatr); Procedure umnosh_na_chislo(const A:veshmatr; var B:veshmatr); Procedure umnosh_na_matr(const A,B:veshmatr; var C:veshmatr); Procedure transpan(const A:veshmatr;var B:veshmatr); Function TypematriX:string;{определяет тип матрицы:квадратная, диоганальная,нулевая или единичная} end;
var W,R,T:veshmatr; i,j,k:integer;
procedure veshmatr.vvod( var B:veshmatr); begin for i:=1 to n do for j:=1 to m do begin write('vvedite_element[',i,',',j,']=',''); readln(B.X[i,j]) end end;
Procedure veshmatr.vivod ( var B:veshmatr); begin for i:=1 to n do begin for j:=1 to m do writeln(' ',B.X[i,j]:12:3); writeln end;
end;
Procedure veshmatr.slosh(const A,B:veshmatr; var C:veshmatr); begin for I := 1 to n do for j := 1 to m do begin C.X[i,j]:=A.X[i,j]+B.X[i,j] end; end;
Procedure veshmatr.vichet(const A,B:veshmatr; var C:veshmatr); begin for I := 1 to n do for j := 1 to m do begin C.X[i,j] :=A.X[i,j]-B.X[i,j] end; end;
Procedure veshmatr.umnosh_na_chislo(const A:veshmatr; var B:veshmatr); var chislo:double; begin writeln('vvedite_chislo'); readln(chislo); for i:=1 to n do for j:=1 to m do begin B.X[i,j]:= A.X[i,j] * chislo end end;
Procedure veshmatr.umnosh_na_matr(const A,B:veshmatr; var C:veshmatr); var i,j,k:word; begin for i:=1 to n do for j:=1 to m do begin C.X[i,j]:=0; for k:=1 to n do C.X[i,j]:=C.X[i,j]+A.X[i,k]*B.X[k,j]; end; end;
Procedure veshmatr.transpan( const A:veshmatr;var B:veshmatr); var i,j:integer; begin for i:=1 to n do for j:=i to m do B.X[i,j]:=A.X[j,i]; end;
Function veshmatr.TypematriX:string; begin if n=m then writeln('matrica_kvadratnaya');
for i:=1 to n do for j:=1 to m do begin if (i<>j) and (X[i,j]=0) then writeln('matrica_diagonalnaya'); if X[i,j]=0 then writeln('matrica_nulevaya'); end;
for i:=1 to n do for j:=1 to m do if (i=j) and (X[i,j]=1) then writeln('matrica_edinichnaya')