RSS    

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

                                 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  ø

5)    Программа выдает ответ:  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  ø.

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

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  ø.

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

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  ø.

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

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  ø.

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

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)   Программа выдает ответ:     æ  122  42  106  ö

             ç  152  72  148  ÷

             è   90   78  126  ø.

7.    Первый исключительный случай:

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

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

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

4)    Программа выдает: «ОШИБКА!!!».

8.    Второй исключительный случай:

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

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

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

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

ç  5  3  ÷

è  8  1  ø.

5)    Программа выдает: «ОШИБКА!!!».

9.    Третий исключительный случай:

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

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

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

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

ç  5  3  7  ÷

è  8  1  4  ø.

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

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

6)    Программа выдает: «ОШИБКА!!!».

10.  Четвертый исключительный случай:

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

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

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

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

ç  5  3  7  ÷

è  8  1  4  ø.

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

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

7)    Программа выдает: «ОШИБКА!!!».

Выводы по работе

Для проверки результатов, выдаваемых программой, использовался математический пакет MathCAD 2001 Professional.

Существенный недостаток программы в том, что при нахождении обратной матрицы и определителя, программа может работать только с матрицами, размером не превышающие 3х3. Это связано со значительным усложнением программы, в случаи необходимости выполнения вышеперечисленных операций над матрицами большего размера.

При написании программы использовалась следующая литература:

1)    Фаронов В.В. «TurboPascal 7.0, начальный курс. Учебное пособие».

2)    Мизрохи С.В. «TurboPascal и объектно-ориентированное програмирование».

3)    Голубев А.Б., Сидоров Ю.Н., Чередниченко А.И., Яценко И.В. «Основы программирования на языке Pascal».

4)    Боревич Э.И. «Определители и матрицы».

5)    Гутер Р.С., Резниковский П.Т. «Программирование и вычислительная математика».

6)    Письменный Д.Т. «Конспект лекций по высшей математике», 1 часть.

7)    Владимирский Б.М., Горстко А.Б., Ерусалимский Я.М. «Математика. Общий курс».


Страницы: 1, 2


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

Обратная связь

Поиск
Обратная связь
Реклама и размещение статей на сайте
© 2010.