Turbo Paskal Операции над матрицами

После запуска программы, пользователю предлагается выбрать требуемую операцию: нахождение определителя, обратной матрицы, транспонированной матрицы, сложение или вычитание двух матриц, умножение

Turbo Paskal Операции над матрицами

Информация

Компьютеры, программирование

Другие материалы по предмету

Компьютеры, программирование

Сдать работу со 100% гаранией
else begin

det:=(MAS1[1,1]*MAS1[2,2]*MAS1[3,3] {Определитель}

+MAS1[2,1]*MAS1[3,2]*MAS1[1,3]

+MAS1[1,2]*MAS1[2,3]*MAS1[3,1])

-(MAS1[3,1]*MAS1[2,2]*MAS1[1,3]

+MAS1[3,2]*MAS1[2,3]*MAS1[1,1]

+MAS1[2,1]*MAS1[1,2]*MAS1[3,3]);

if det = 0 then WriteLn ('ОШИБКА!!!') {Условие ошибки}

else begin {Союзная матрица}

for i1:=1 to m1 do

for j1:=1 to n1 do MAS2[i1,j1]:=MAS1[j1,i1];

{Итоговая формула}

for i1:=1 to m1 do

for j1:=1 to n1 do MAS3[i1,j1]:=(1/det)*MAS2[i1,j1];

WriteLn;

WriteLn ('Обратная матрица:');

for i1:=1 to m1 do begin {Вывод обратной матрицы}

for j1:=1 to n1 do

Write (MAS3[i1,j1]);

WriteLn;

end;

end;

end;

end;

 

3: begin {Транспонирование матрицы}

for i1:=1 to m1 do

for j1:=1 to n1 do MAS2[i1,j1]:=MAS1[j1,i1]; {Формула}

WriteLn ('Транспонированная матрица: ');

for i1:=1 to m1 do begin {Вывод транспонированной матрицы}

for j1:=1 to n1 do

Write (MAS2[i1,j1]);

WriteLn;

end;

end;

 

4,5: begin {Сложение/вычитание матриц}

{Ввод второй матрицы}

WriteLn ('Введите кол-во строк второй матрицы');

ReadLn (m2);

Writeln ('Введите кол-во столбцов второй матрицы');

ReadLn (n2);

If (n2<>n1) or (m2<>m1)

then WriteLn ('OSHIBKA!!!') {Условие ошибки}

else begin

WriteLn ('Введите вторую матрицу');

for i1:=1 to m1 do

for j1:=1 to n1 do

Read (MAS2[i1,j1]);

end;

for i1:=1 to m1 do {Вывод второй матрицы}

begin

for j1:=1 to n1 do

Write (MAS2[i1,j1]);

WriteLn;

end;

 

if operation = 4 then k := 1;

if operation = 5 then k := -1;

for i1:=1 to m1 do

for j1:=1 to n1 do

MAS3[i1,j1]:=MAS1[i1,j1]+k*MAS2[i1,j1]; {Итоговая формула}

 

writeln('Сумма/разность:');

for i1:=1 to m1 do

begin

for j1:=1 to n1 do Write(MAS3[i1,j1]);

WriteLn;

end;

 

end;

 

 

6: begin {Умножение матриц}

{Ввод второй матрицы}

WriteLn ('Введите кол-во строк второй матрицы');

ReadLn (m2);

Writeln ('Введите кол-во столбцов второй матрицы');

ReadLn (n2);

If ((1>=m2) or (m2>=10) or (1>=n2) or (n2>=10) {Условие ошибки}

or (n2<>m1)) then WriteLn ('ОШИБКА!!!')

else begin

WriteLn ('Введите вторую матрицу');

for i2:=1 to m2 do

for j2:=1 to n2 do Read (MAS2[i2,j2]);

end;

for i2:=1 to m2 do begin {Вывод второй матрицы}

for j2:=1 to n2 do

Write (MAS2[i2,j2]);

WriteLn;

end;

m3:=m1; n3:=n2;

for i3:=1 to m3 do

for j3:=1 to n3 do begin

MAS3[i3,j3] := 0;

for i2:= 1 to m2 do

{Итоговая формула}

MAS3[i3,j3] :=MAS3[i3,j3] + MAS1[i3,i2] * MAS2[i2,j3];

end;

begin {Вывод произведения}

writeln;

writeln('Произведение:');

for i3:=1 to m1 do begin

for j3:=1 to n2 do Write (MAS3[i3,j3]);

WriteLn;

end;

end;

end;

End; {End Case}

ReadKey;

END. {Конец программы}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример работы программы

 

1. Операция нахождения определителя:

 

  1. При появлении на экране меню с выбором операций, выбираем 1.
  2. На предложение ввести кол-во строк матрицы, выбираем 3.
  3. Кол-во столбцов 3.
  4. Вводим матрицу: 1 4 5

5 3 7

8 1 4

  1. Программа выдает ответ: det = 54.

 

2. Операция нахождения обратной матрицы:

 

1) При появлении на экране меню с выбором операций, выбираем 2.

2) На предложение ввести кол-во строк матрицы, выбираем 3.

3) Кол-во столбцов 3.

4) Вводим матрицу: 1 4 5

5 3 7

8 1 4

5) Программа выдает ответ: 1,851*100 9,259*100 1,481*10

7,407*100 5,555*100 1,851*100

9,259*100 1,296*10 7,407*100 .

 

  1. Операция транспонирования матрицы:

 

1) При появлении на экране меню с выбором операций, выбираем 3.

2) На предложение ввести кол-во строк матрицы, выбираем 3.

3) Кол-во столбцов 3.

4) Вводим матрицу: 1 4 5

5 3 7

8 1 4

5) Программа выдает ответ: 1 5 8

4 3 1

5 7 4 .

 

  1. Операция сложения матриц:

 

1) При появлении на экране меню с выбором операций, выбираем 3.

2) На предложение ввести кол-во строк матрицы, выбираем 3.

3) Кол-во столбцов 3.

4) Вводим матрицу: 1 4 5

5 3 7

8 1 4

5) На предложение ввести кол-во строк матрицы, выбираем 3.

6) Кол-во столбцов 3.

7) Вводим матрицу: 2 8 10

10 6 14

16 2 8 .

8) Программа выдает ответ: 3 12 15

15 9 21

24 3 12 .

 

 

 

 

  1. Операция вычитания матриц:

 

1) При появлении на экране меню с выбором операций, выбираем 3.

2) На предложение ввести кол-во строк матрицы, выбираем 3.

3) Кол-во столбцов 3.

4) Вводим матрицу: 1 4 5

5 3 7

8 1 4

5) На предложение ввести кол-во строк матрицы, выбираем 3.

6) Кол-во столбцов 3.

7) Вводим матрицу: 2 8 10

10 6 14

16 2 8 .

8) Программа выдает ответ: -1 -4 -5

-5 -3 -7

-8 -1 -4 .

 

  1. Операция перемножения матриц:

 

1) При появлении на экране меню с выбором операций, выбираем 3.

2) На предложение ввести кол-во строк матрицы, выбираем 3.

3) Ко

Похожие работы

< 1 2 3 >