МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАНКОНТРОЛЬНАЯ РАБОТАпо дисциплине «Инструментальные средства разработки программных средств»На тему: «Действия над матрицами»Выполнил: студент гр.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;interfaceuses 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
Похожие работы
Методы формирования нейросетей Сущность электронного документооборота
Основные понятия экономической информатики Под экономической информатикой понимается наука, предназначенная для формирования теоретических основ моделирования деятельности хозяйствующих субъектов, также государственных, региональных и муниципальных образований. Ее…
Игра в Морской бой с компьютером
СОДЕРЖАНИЕ Введение 1 Постановка задачи 2 Математические и алгоритмические основы решения задачи 3 Функциональные модели и блок-схемы решения задачи 4 Программная реализация решения задачи 5…
Обработка данных в автоматизированных системах
Министерство образования и науки Украины Севастопольский национальный технический университет Кафедра технической кибернетики КУРСОВОЙ ПРОЕКТ на тему: «Обработка данных в автоматизированных системах» (альбом документов) Севастополь 2006…
Винчестеры
Содержание 1. Винчестеры Практическое задание 1 Программа на языке программирования BASIC Практическое задание 2 Практическое задание 3 Список литературы Винчестеры Накопи́тель на жёстких магни́тных ди́сках,…
Математична модель вимірювальної системи в середовищі Delphi
Курсова робота Математична модель вимірювальної системи в середовищі Delphi АНОТАЦІЯ Опис програми містить загальний опис алгоритмів головної програми та допоміжних на рівні блок-схем, а також…