Рефераты. 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



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.