Действия над матрицами

Автор работы: Пользователь скрыл имя, 08 Марта 2011 в 15:43, контрольная работа

Описание работы

Задание: Реализация действий над матрицами (сложение, вычитание, умножение, обращение, транспонирование)

Технология: Automation, позднее связывание.

Тип (имя) сервера: MS Excel.

Файлы: 1 файл

Контрисп.doc

— 144.00 Кб (Скачать файл)

МИНИСТЕРСТВО  ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАН 
 
 
 
 
 
 
 
 

КОНТРОЛЬНАЯ РАБОТА 

по дисциплине «Инструментальные средства разработки программных средств» 

На тему: «Действия над матрицами» 
 
 
 
 
 
 
 
 
 
 
 

                                                         Выполнил:

                                                         студент гр.08-ВТ3-3 

                                                         Проверил:

                                                         Преподаватель      
 
 
 
 
 
 

Индивидуальное  задание.

     Задание: Реализация действий над матрицами (сложение, вычитание, умножение, обращение, транспонирование)

     Технология: Automation, позднее связывание.

     Тип (имя) сервера: MS Excel. 

     Формулы расчёта.

         Сложение  матриц.

     Результатом сложения матриц А и В является матрица С  элементы которой равны попарной сумме соответствующих элементов матриц А и В.

 Аij+Bij = Cij

            Вычитание матриц.

     Результатом вычитания матриц А и В является матрица С элементы которой равны попарной разности соответствующих элементов матриц А и В.

     Аij - Bij = Cij

  

                  Умножение матриц.

           Результатом умножения  матриц А и В является матрица  С элементы которой равны сумме произведений элементов в соответствующей строке первого множителя и столбце второго.

 

     Но, поскольку мы для расчета используем MS Excel, то умножаем матрицы с помощью доступной нам функции «МУМНОЖ».

            Обращение матриц.

     Обратная  матрица — такая матрица A-1, при умножении на которую исходная матрица A даёт в результате единичную матрицу E:

    АА-1-1А=Е

При условии  что,аd-bc≠0.

      Для получения обращенной матрицы используем функцию MS Excel «МОБР».

            Транспонирование  матриц.

      Результатом транспонирования матрицы А является матрица С, каждый n-ый столбец которой идентичен n-ой строке матрицы А.

А Результат транспонирования матрицы А матрица С .

      Для получения транспонированной матрицы  средствами MS Excel используем функцию «ТРАНСП».  

Схема алгоритма.

 
 
 
 
 

 
 

 

 

 
 
 
 

 
 
 
 
 

                                   Рисунок 1. –Схема работы программы. 
 
 

      Для реализации задания используется функция  CreateOleObject модуля comobj. 

      Исходный  код приложения.

unit Unit1; 

interface 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls,comobj, Grids; 

type

  TForm1 = class(TForm)

    Button1: TButton;

    StringGrid1: TStringGrid;

    StringGrid2: TStringGrid;

    StringGrid3: TStringGrid;

    StringGrid4: TStringGrid;

    StringGrid5: TStringGrid;

    StringGrid6: TStringGrid;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form1: TForm1; 

implementation 

{$R *.dfm} 

procedure TForm1.Button1Click(Sender: TObject);

var m:OLEvariant;

i,j:integer;

begin

  randomize;

  for i:=1 to 4 do

  for j:=1 to 4 do

  StringGrid1.Cells[i-1, j-1]:=IntToStr(random(25));

m:=CreateOLEObject('Excel.Application');

m.WorkBooks.Add;

m.WorkBooks[1].WorkSheets[1].Name:='Действия над матрицами';

//m.Application.Visible:=true;

for i:=1 to 4 do

for j:=1 to 4 do

m.WorkBooks[1].WorkSheets[1].Cells.Item[i,j]:=StringGrid1.Cells[i-1, j-1];

//оформление

m.WorkBooks[1].WorkSheets[1].Range['E1:E18'].ColumnWidth:=2;

m.WorkBooks[1].WorkSheets[1].Range['E1:E18'].Interior.Color:=RGB(0,0,0);

m.WorkBooks[1].WorkSheets[1].Range['J1:J18'].ColumnWidth:=2;

m.WorkBooks[1].WorkSheets[1].Range['J1:J18'].Interior.Color:=RGB(0,0,0);

m.WorkBooks[1].WorkSheets[1].Range['A6:I6'].Interior.Color:=RGB(0,0,0);

m.WorkBooks[1].WorkSheets[1].Range['A18:I18'].Interior.Color:=RGB(0,0,0);

m.WorkBooks[1].WorkSheets[1].Range['A12:I12'].Interior.Color:=RGB(0,0,0);

m.WorkBooks[1].WorkSheets[1].Range['A5'].Font.Bold:=true;

m.WorkBooks[1].WorkSheets[1].Range['A5'].Font.Size:=18;

m.WorkBooks[1].WorkSheets[1].Range['A5'].Value:='Исходная матрица';

m.WorkBooks[1].WorkSheets[1].Range['A11'].Font.Bold:=true;

m.WorkBooks[1].WorkSheets[1].Range['A11'].Font.Size:=13;

m.WorkBooks[1].WorkSheets[1].Range['A11'].Value:='Результат транспонирования';

m.WorkBooks[1].WorkSheets[1].Range['F5'].Font.Bold:=true;

m.WorkBooks[1].WorkSheets[1].Range['F5'].Font.Size:=13;

m.WorkBooks[1].WorkSheets[1].Range['F5'].Value:='Результат вычитания';

m.WorkBooks[1].WorkSheets[1].Range['F11'].Font.Bold:=true;

m.WorkBooks[1].WorkSheets[1].Range['F11'].Font.Size:=13;

m.WorkBooks[1].WorkSheets[1].Range['F11'].Value:='Результат сложения';

m.WorkBooks[1].WorkSheets[1].Range['A17'].Font.Bold:=true;

m.WorkBooks[1].WorkSheets[1].Range['A17'].Font.Size:=13;

m.WorkBooks[1].WorkSheets[1].Range['A17'].Value:='Результат умножения';

m.WorkBooks[1].WorkSheets[1].Range['F17'].Font.Bold:=true;

m.WorkBooks[1].WorkSheets[1].Range['F17'].Font.Size:=13;

m.WorkBooks[1].WorkSheets[1].Range['F17'].Value:='Результат обращения';

m.WorkBooks[1].WorkSheets[1].Range['A19'].Font.Name:='Times New Roman';

m.WorkBooks[1].WorkSheets[1].Range['A19:J19'].RowHeight:=30;

m.WorkBooks[1].WorkSheets[1].Range['A19:J19'].MergeCells:=true;

m.WorkBooks[1].WorkSheets[1].Range['A19'].Font.Bold:=true;

m.WorkBooks[1].WorkSheets[1].Range['A19'].Font.Size:=13;

m.WorkBooks[1].WorkSheets[1].Range['A19'].Value:='Действия  сложения,вычитания умножения производятся  между "исходной" и "транспонированной"  матрицами.';

m.WorkBooks[1].WorkSheets[1].Range['A19'].Wraptext:=true;

//транспонирование

m.WorkBooks[1].WorkSheets[1].Range['A7:D10', EmptyParam].Select;

m.WorkBooks[1].WorkSheets[1].Range['A7:D10', EmptyParam].FormulaArray:='=ТРАНСП(R1C1:R4C4)';

//сложение

m.WorkBooks[1].WorkSheets[1].Range['F7:I10', EmptyParam].Select;

m.WorkBooks[1].WorkSheets[1].Range['F7:I10', EmptyParam].FormulaArray:='=(R1C1:R4C4)+(R7C1:R10C4)';

//вычитание

m.WorkBooks[1].WorkSheets[1].Range['F1:I4', EmptyParam].Select;

m.WorkBooks[1].WorkSheets[1].Range['F1:I4', EmptyParam].FormulaArray:='=(R1C1:R4C4)-(R7C1:R10C4)';

//умножение

m.WorkBooks[1].WorkSheets[1].Range['A13:D16', EmptyParam].Select;

m.WorkBooks[1].WorkSheets[1].Range['A13:D16', EmptyParam].FormulaArray:='=МУМНОЖ(R1C1:R4C4;R7C1:R10C4)';

//обращение

m.WorkBooks[1].WorkSheets[1].Range['F13:I16', EmptyParam].Select;

m.WorkBooks[1].WorkSheets[1].Range['F13:I16', EmptyParam].FormulaArray:='=МОБР(R1C1:R4C4)';

//передача данных

for i:=13 to 16 do

for j:=1 to 4 do

StringGrid5.Cells[j-1, i-13]:=m.WorkBooks[1].WorkSheets[1].Cells.Item[i,j];

for i:=7 to 10 do

for j:=6 to 10 do

StringGrid4.Cells[j-6,i-7]:=m.WorkBooks[1].WorkSheets[1].Cells.Item[i,j];

for i:=1 to 4 do

for j:=6 to 10 do

StringGrid3.Cells[j-6, i-1]:=m.WorkBooks[1].WorkSheets[1].Cells.Item[i,j];

for i:=1 to 4 do

for j:=7 to 10 do

StringGrid2.Cells[j-7, i-1]:=m.WorkBooks[1].WorkSheets[1].Cells.Item[j,i];

for i:=13 to 16 do

for j:=6 to 10 do

StringGrid6.Cells[j-6, i-13]:=m.WorkBooks[1].WorkSheets[1].Cells.Item[i,j];

m.displayalerts:=false;

m.application.quit;

m:=Unassigned;

end; 
 

 

Рисунок 2.- «Окно вывода результатов действий над матрицами» 
 
 
 

Список  использованной литературы: 
 

3. Корняков В. Н. «Программирование документов и приложений MS Office в Delphi.» —СПб. : БХВ-Петербург, 2005. - 496 с : ил. ISBN 5-94157-458-4 
 
 
 

Информация о работе Действия над матрицами