Учебная работа. Реферат: Действия над матрицами

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (7 оценок, среднее: 4,71 из 5)
Загрузка...
Контрольные рефераты

Учебная работа. Реферат: Действия над матрицами

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

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

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

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

Выполнил:

студент гр.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

]]>