Выполнить операции над матрицами - Pascal ABC
Формулировка задачи:
Выполнить операции (здесь A, B, C, D — квадратные матрицы порядка n)
3D-4ATBCD
Код к задаче: «Выполнить операции над матрицами - Pascal ABC»
const nmax=7; var n:byte; type matr=array[1..nmax,1..nmax] of integer; procedure Vvod(var mt:matr); var i,j:byte; begin for i:=1 to n do for j:=1 to n do mt[i,j]:=random(10); end; procedure Vyvod(mt:matr;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]:8); writeln; end; end; procedure Trans(m:matr;var m1:matr); var i,j:byte; begin for i:=1 to n do for j:=1 to n do m1[i,j]:=m[j,i]; end; procedure UmnMatr(m1,m2:matr;var m:matr); 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 UmnSc(m1:matr;s:integer;var m2:matr); var i,j:byte; begin for i:=1 to n do for j:=1 to n do m2[i,j]:=m1[i,j]*s; end; procedure RazMatr(m1,m2:matr;var m:matr); 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,d,e,d3,at,cd,bcd,abcd,abcd4:matr; begin randomize; repeat write('Размер матриц от 2 до ',nmax,' n='); readln(n); until n in [1..nmax]; Vvod(a); Vvod(b); Vvod(c); Vvod(d); Vyvod(a,'Матрица A');{исходная А} Vyvod(b,'Матрица B');{исходная B} Vyvod(c,'Матрица C');{исходная C} Vyvod(d,'Матрица D');{исходная D} UmnSc(d,3,d3);{3*D} Trans(a,at);{A^t} UmnMatr(c,d,cd);{C*D} UmnMatr(b,cd,bcd);{B*C*D} UmnMatr(at,bcd,abcd);{A^T*B*C*D} UmnSc(abcd,4,abcd4);{4*A^T*B*C*D} RazMatr(d3,abcd4,e); {3*D-4*A^T*B*C*D} Vyvod(e,'Матрица E=3*D-4*A^T*B*C*D'); end.
11 голосов, оценка 4.000 из 5
СОХРАНИТЬ ССЫЛКУ