Автор работы: Пользователь скрыл имя, 08 Марта 2011 в 15:43, контрольная работа
Задание: Реализация действий над матрицами (сложение, вычитание, умножение, обращение, транспонирование)
Технология: Automation, позднее связывание.
Тип (имя) сервера: MS Excel.
МИНИСТЕРСТВО
ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ
КАЗАХСТАН
КОНТРОЛЬНАЯ
РАБОТА
по дисциплине
«Инструментальные средства разработки
программных средств»
На тему:
«Действия над матрицами»
Индивидуальное задание.
Задание: Реализация действий над матрицами (сложение, вычитание, умножение, обращение, транспонирование)
Технология: Automation, позднее связывание.
Тип
(имя) сервера: MS Excel.
Формулы расчёта.
Сложение матриц.
Результатом сложения матриц А и В является матрица С элементы которой равны попарной сумме соответствующих элементов матриц А и В.
Аij+Bij = Cij
Вычитание матриц.
Результатом вычитания матриц А и В является матрица С элементы которой равны попарной разности соответствующих элементов матриц А и В.
Аij - Bij = Cij
Умножение матриц.
Результатом умножения матриц А и В является матрица С элементы которой равны сумме произведений элементов в соответствующей строке первого множителя и столбце второго.
Но, поскольку мы для расчета используем MS Excel, то умножаем матрицы с помощью доступной нам функции «МУМНОЖ».
Обращение матриц.
Обратная матрица — такая матрица A-1, при умножении на которую исходная матрица A даёт в результате единичную матрицу E:
АА-1=А-1А=Е
При условии что,аd-bc≠0.
Для получения обращенной матрицы используем функцию MS Excel «МОБР».
Транспонирование матриц.
Результатом транспонирования матрицы А является матрица С, каждый n-ый столбец которой идентичен n-ой строке матрицы А.
А Результат транспонирования матрицы А матрица С .
Для
получения транспонированной
Схема алгоритма.
Для
реализации задания используется функция
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.
m.WorkBooks.Add;
m.WorkBooks[1].WorkSheets[1].
//m.Application.Visible:=true;
for i:=1 to 4 do
for j:=1 to 4 do
m.WorkBooks[1].WorkSheets[1].
//оформление
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
//транспонирование
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
//сложение
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
//вычитание
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
//умножение
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
//обращение
m.WorkBooks[1].WorkSheets[1].
m.WorkBooks[1].WorkSheets[1].
//передача данных
for i:=13 to 16 do
for j:=1 to 4 do
StringGrid5.Cells[j-1, i-13]:=m.WorkBooks[1].
for i:=7 to 10 do
for j:=6 to 10 do
StringGrid4.Cells[j-6,i-7]:=m.
for i:=1 to 4 do
for j:=6 to 10 do
StringGrid3.Cells[j-6, i-1]:=m.WorkBooks[1].
for i:=1 to 4 do
for j:=7 to 10 do
StringGrid2.Cells[j-7, i-1]:=m.WorkBooks[1].
for i:=13 to 16 do
for j:=6 to 10 do
StringGrid6.Cells[j-6, i-13]:=m.WorkBooks[1].
m.displayalerts:=false;
m.application.quit;
m:=Unassigned;
end;
Рисунок 2.-
«Окно вывода результатов действий над
матрицами»
Список
использованной литературы:
3. Корняков В. Н.
«Программирование документов и приложений
MS Office в Delphi.» —СПб. : БХВ-Петербург, 2005.
- 496 с : ил. ISBN 5-94157-458-4