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