program matrica;
uses crt;
label r,p;
var a,c: array [1..3, 1..3] of integer;
b,d: array [1..3, 1..3] of real;
i,j,s,k,y:integer;
l,x,d1,d2,d3,x1,x2,x3:real;
begin
p:
TextBackground(1);
clrscr;
textcolor(3);
gotoxy(1,1); writeln('-------'); gotoxy(1,2); writeln(' 1 1 3 8');
gotoxy(1,3); writeln(' A=-2 4 2, b=4'); gotoxy(1,4); writeln(' 3 7 1 24');
gotoxy(1,5); writeln('-------'); writeln('1-Вычислить выражение (A*A)*B');
writeln('2-Транспонировать матрицу А'); writeln('3 -Вычислить определитель матрицы А');
writeln('4-Найти матрицу, обратную к матрице А'); writeln('5 -Решение системы методом Крамера');
writeln('6-Выход'); writeln('Выберите нужную цифру'); readln(y);
a[1,1]:=1; a[1,2]:=1; a[1,3]:=3; a[2,1]:=-2; a[2,2]:=4; a[2,3]:=2; a[3,1]:=3; a[3,2]:=7; a[3,3]:=1;
if y=1 then begin
for i:=1 to 3 do begin
for j:=1 to 3 do begin
s:=0;
for k:=1 to 3 do begin
s:=s+a[i,k]*a[k,j];
end;
c[i,j]:=s;
end; end;
for i:=1 to 3 do begin
d[1]:=(c[1,1]*b[1])+(c[1,2]*b[2])+(c[1,3]*b[3]); d[2]:=(c[2,1]*b[1])+(c[2,2]*b[2])+(c[2,3]*b[3]);
d[3]:=c[3,1]*b[1])+(c[3,2]*b[2])+c(c[3,3]*b[3]);
end;
textcolor(10: gotoxy(10,3); write('1. A=');
for i:=1 to 3 do begin
for j:=1 to 3 do begin
gotoxy(12+4*i,1+j);
writeln(a[i,j]);
end; end;
gotoxy(35,3); write('2. B=');
for i:=1 to 3 do begin
gotoxy(38+3*i,j);
write(b[i]);
end;
gotoxy(10,10); write('3. A*A=');
for i:=1 to 3 do begin
for j:=1 to 3 do begin
gotoxy(14+4*i,8+j);
writeln(c[i,j]);
end; end;
gotoxy(35,10); write('4. (A*A)*B=');
for i:=1 to 3 do begin
gotoxy(43+5*i,7+j);
writeln(d[i]);
end;
readkey;
end; end;
if y=2 then begin
clrscr;
textcolor(7);
gotoxy(30,11); write('A=');
for i:=1 to 3 do begin
for j:=1 to 3 do begin
gotoxy(28+4*i,9+j);
writeln(a[i,j]:2);
end; end;
readkey;
end; end;
if y=3 then begin textbackground(3);
clrscr;
l:=(a[1,1]*((a[2,2]*a[3,3])-(a[2,3]*a[3,2])))-(a[1,2]*((a[2,1]*a[3,3])-(a[2,3]*a[3,1])))+(a[1,3]*((a[2,1]*a[3,2])-(a[2,2]*a[3,1])));
textcolor(4); gotoxy(33,12); writeln('Определитель=',1:2:0);
readkey;
end;
if y=4 then begin
clrscr;
l=-124;
x:=-1;
for i:=1 to 3 do begin
for j:=1 to 3 do begin
t[1,1]:=sqr(x)*((a[2,2]*a[3,3])-(a[2,3]*a[3,2])); t[2,1]:=(sqr(x)*(x))*((a[2,1]*a[3,3])-(a[3,1]*a[2,3]));
t[3,1]:=(sqr(x)*(x)*(x))*((a[2,1]*a[3,2])-(a[2,2]*a[3,1])); t[1,2]:=(sqr(x)*(x))*((a[1,2]*a[3,3])-(a[3,2]*a[1,3]));
t[2,2]:=(sqr(x)*(x)*(x))*((a[1,1]*a[3,3])-a[3,1]*a[1,3])); t[3,2]:=(sqr(x)*(x)*(x)*(x))*((a[1,1]*a[3,2])-(a[3,1]*a[1,2]));
t[1,3]:=(sqr(x)*(x)*(x))*((a[1,2]*[2,3])-(a[2,2]*a[1,3])); t[2,3]:=(sqr(x)*(x)*(x)*(x))*((a[1,1]*a[2,3])-(a[2,1]*a[1,3]));
t[3,3]:=(sqr(x)*(x)*(x)*(x)*(x))*((a[1,1]*a[2,2])-a[2,1]*a[1,2]));
end; end;
for i:=1 to 3 do begin
for j:=1 to 3 do begin
h[i,j]:=(1/l)*(t[i,j]);
end; end;
textcolor(4);
gotoxy(9,11); write('Обратная матрица=');
for i:=1 to 3 do begin
for j:=1 to 3 do begin
gotoxy(23+10*i,9+j);
writeln(h[j,i]:2:6);
end; end;
readkey;
end; if y=5 then begin textbackground(6); clrscr; l:=-124;
d1:=(b[1]*((a[2,2]*a[3,3])-(a[2,3]*a[3,2])))-(a[1,2]*((b[2]*a[3,3])-(a[2,3]*b[3])))+(a[1,3]*((b[2]*a[3,2])-(a[2,2]*b[3])));
d2:=(a[1,1]*((b[2]*a[3,3])-(a[2,3]*b[3])))-(b[1]*((a[2,1]*a[3,3])-(a[2,3]*a[3,1])))+(a[1,3]*((a[2,1]*b[3])-(b[2]*a[3,1])));
d3:=(a[1,1]*((a[2,2]*b[3])-(b[2]*a[3,2])))-(a[1,2]*((a[2,1]*b[3])-(b[2]*a[3,1])))+(b[1]*((a[2,1]*a[3,2])-(a[2,2]*a[3,1])));
x1:=d1/l; x2:=d2/l; x3:=d3/l; textcolor(7);
gotoxy(35,10); write('x1='); writeln(x1:2:0);
gotoxy(35,12); write('x2='); writeln(x2:2:0);
gotoxy(35,14); write('x3='); writeln(x3:2:0);
readkey;
end;
if y=6 then goto r;
goto p;
readkey;
r:
end.