|
|
Блок – схема программы
Текст Программы:
Program MATRIX;
{Наименование программы}
Uses CRT;
VAR i1, i2, i3 : integer; {Счетчик строк}
j1, j2, j3 : integer; {Счетчик столбцов}
operation: integer; {Вариант развития программы}
det : real; {Определитель}k: integer; {Рабочая переменная}
{Массивы
(матрицы), используемые в программе}
MAS1, {Матрица А}
MAS2, {Матрица В}
MAS3
: array [1..10,1..10] of real; {Матрица С}
BEGIN {Начало
программы}
WriteLn ('Что Вы желаете делать с матрицами?');
{Выбор
пользователем варианта развития программы}
WriteLn ('Если Вы желаете найти определитель матрицы, нажмите 1');
WriteLn ('Если Вы желаете найти обратную матрицу, нажмите 2');
WriteLn ('Если Вы желаете транспонировать матрицу, нажмите 3');
WriteLn ('Если Вы желаете сложить матрицы, нажмите 4');
WriteLn ('Если Вы желаете вычесть матрицы, нажмите 5');
WriteLn ('Если Вы желаете перемножить матрицы, нажмите 6');
ReadLn (operation); {Занесение выбранного варианта в
память}
WriteLn ('Введите кол-во строк исходной матрицы, не более 10');
ReadLn (m1);
WriteLn ('Введите кол-во столбцов исходной матрицы, не более 10');
ReadLn
(n1);
If ((1>n1) or
(n1>10) or (1>m1) or (m1>10)) {Условия ошибки}
then begin
WriteLn ('ОШИБКА!!!');
Halt;
end
else begin
WriteLn ('Введите исходную матрицу'); {Ввод исходной матрицы}
for
i1:=1 to m1 do
for j1:=1
to n1 do Read (MAS1[i1,j1]);
end;
for i1:=1 to
m1 do {Вывод исходной матрицы}
begin
for
j1:=1 to n1 do
Write
(MAS1[i1,j1]);
WriteLn;
end;
Case operation of
{Оператор выбора «operation»}
1: begin {Определитель}
if
(m1<>n1) then writeLn ('ОШИБКА!!!') {Условие
ошибки}
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]);
WriteLn ('Opredelitel det=',det); {Вывод определителя}
end;
end;
2: begin {Обратная матрица}
if
(m1<>n1) then WriteLn ('ОШИБКА!!!') {Условие ошибки}
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];
Страницы: 1, 2
|
2012 © Все права защищены
При использовании материалов активная
ссылка на источник обязательна.