![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Красноярск 2015
Министерство сельского хозяйства Российской Федерации Департамент научно-технической политики и образования Федеральное государственное бюджетное образовательное учреждение Высшего образования КРАСНОЯРСКИЙ ГОСУДАРСКВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ Институт Экономики и финансов АПК
Кафедра «Бизнес информатики и информационно-компьютерной безопасности»
ОТЧЕТ По дисциплине «Объектно-ориентированное программирование» Лабораторная работа №2
Выполнила студентка 4 курса Очной формы обучения Института Эиф АПК Группы 46 ________________________ (Ворончихина А.А.) (подпись) Представлена на проверку ________________________ (дата) Проверена Титовская Т.С. ________________________ (подпись)
Красноярск 2015 Задание: Создать класс квадратная матрица, поля класса – размерность и элементы матрицы. Методы класса: проверка, является ли матрица матрица верхнетреугольной или нижнетреугольной, вывод матрицы. В классе предусмотреть методы перегрузки операций: сложение, вычитание, умножение матриц, умножение матрицы на число. Код программы: unit Unit1; interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Edit1: TEdit; Edit19: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit; Edit8: TEdit; Edit9: TEdit; Edit10: TEdit; Edit11: TEdit; Edit12: TEdit; Edit13: TEdit; Edit14: TEdit; Edit15: TEdit; Edit16: TEdit; Edit17: TEdit; Edit18: TEdit; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); private { private declarations } public { public declarations } end;
type TMatr=class private x: array[1..3, 1..3] of real; y: array[1..3, 1..3] of real; z: array[1..3, 1..3] of real; public constructor create(); function MatrToStr(): String; function MatrToStr1(): String; function MatrToStr2(): String; end; operator +(const a, b: TMatr)r: TMatr; //сложение матриц operator -(const a, b: TMatr)r: TMatr; //вычитание матриц operator *(const a, b: TMatr)r: TMatr; //умножение матриц operator *(const a: TMatr; b: real)r: TMatr; //умножение матрицы на число var Form1: TForm1; m1: TMatr; m2: TMatr; m3: TMatr; m4: TMatr; m5: TMatr; m6: TMatr; implementation constructor TMatr.Create(); begin x[1, 1]: =0; y[1, 1]: =0; z[1, 1]: =0; x[1, 2]: =0; y[1, 2]: =0; z[1, 2]: =0; x[1, 3]: =0; y[1, 3]: =0; z[1, 2]: =0; x[2, 1]: =0; y[2, 1]: =0; z[2, 1]: =0; x[2, 2]: =0; y[2, 2]: =0; z[2, 2]: =0; x[2, 3]: =0; y[2, 3]: =0; z[2, 3]: =0; x[3, 1]: =0; y[3, 1]: =0; z[3, 1]: =0; x[3, 2]: =0; y[3, 2]: =0; z[3, 2]: =0; x[3, 3]: =0; y[3, 3]: =0; z[3, 3]: =0; inherited Create; end; operator +(const a, b: TMatr)r: TMatr; //сложение матриц var i, j: integer; begin r: =TMatr.Create(); for i: =1 to 3 do for j: =1 to 3 do r.z[i, j]: =a.x[i, j]+b.y[i, j]; end; operator -(const a, b: TMatr)r: TMatr; //вычитание матриц var i, j: integer; begin r: =TMatr.Create(); for i: =1 to 3 do for j: =1 to 3 do r.z[i, j]: =a.x[i, j]-b.y[i, j]; end;
operator *(const a, b: TMatr)r: TMatr; //умножение матриц var i, j: integer; begin r: =TMatr.Create(); for i: =1 to 3 do for j: =1 to 3 do r.z[i, j]: =a.x[i, j]*b.y[i, j]; end; operator *(const a: TMatr; b: real)r: TMatr; //умножение матрицы на число var i, j: integer; begin r: =TMatr.Create(); for i: =1 to 3 do for j: =1 to 3 do r.z[i, j]: =a.x[i, j]*b; end; function TMatr.MatrToStr(): String; var s: string; i, j: integer; begin s: =''; for i: =1 to 3 do begin for j: =1 to 3 do s: =s+FloatTostr(x[i, j])+' '; s: =s+#13#10; end; MatrToStr: =s; end; function TMatr.MatrToStr1(): String; var s: string; i, j: integer; begin s: =''; for i: =1 to 3 do begin for j: =1 to 3 do s: =s+FloatTostr(y[i, j])+' '; s: =s+#13#10; end; MatrToStr1: =s; end; function TMatr.MatrToStr2(): String; var s: string; i, j: integer; begin s: =''; for i: =1 to 3 do begin for j: =1 to 3 do s: =s+FloatTostr(z[i, j])+' '; s: =s+#13#10; end; MatrToStr2: =s; End; procedure TForm1.Button1Click(Sender: TObject); var str: string; s: string; begin str: =m1.MatrToStr(); Memo1.Lines.Add(str); str: =m2.MatrToStr1(); Memo1.Lines.Add(str); end; procedure TForm1.Button2Click(Sender: TObject); var str: string; i, j: integer; a, b: Tmatr; begin m3.create(); m3: =m1+m2; str: =m3.MatrToStr2(); Memo1.Lines.Add(str); end; procedure TForm1.Button3Click(Sender: TObject); begin m1: =TMatr.Create(); m2: =TMatr.Create(); m1.x[1, 1]: =StrToFloat(Edit1.Text); m2.y[1, 1]: =StrToFloat(Edit10.Text); m1.x[1, 2]: =StrToFloat(Edit2.text); m2.y[1, 2]: =StrToFloat(Edit11.text); m1.x[1, 3]: =StrToFloat(Edit3.text); m2.y[1, 3]: =StrToFloat(Edit12.text); m1.x[2, 1]: =StrToFloat(Edit4.text); m2.y[2, 1]: =StrToFloat(Edit13.text); m1.x[2, 2]: =StrToFloat(Edit5.text); m2.y[2, 2]: =StrToFloat(Edit14.text); m1.x[2, 3]: =StrToFloat(Edit6.text); m2.y[2, 3]: =StrToFloat(Edit15.text); m1.x[3, 1]: =StrToFloat(Edit7.text); m2.y[3, 1]: =StrToFloat(Edit16.text); m1.x[3, 2]: =StrToFloat(Edit8.text); m2.y[3, 2]: =StrToFloat(Edit17.text); m1.x[3, 3]: =StrToFloat(Edit9.text); m2.y[3, 3]: =StrToFloat(Edit18.text); end; procedure TForm1.Button4Click(Sender: TObject); var str: string; begin m4.create(); m4: =m1-m2; str: =m4.MatrToStr2(); Memo1.Lines.Add(str); end; procedure TForm1.Button5Click(Sender: TObject); var str: string; begin m5.create(); m5: =m1*m2; str: =m5.MatrToStr2(); Memo1.Lines.Add(str); end;
procedure TForm1.Button6Click(Sender: TObject); var str: string; b: real; begin b: =Strtofloat(Edit19.text); m6.create(); m6: =m1*b; str: =m6.MatrToStr2(); Memo1.Lines.Add(str); end; procedure TForm1.Button7Click(Sender: TObject); var n1, v1, n2, v2: boolean; i, j, k: integer; begin n1: =false; v1: =false; n2: =false; v2: =false; for i: =1 to 3 do for j: =1 to 3 do begin if (j< i) and (m1.x[i, j]=0) then n1: =true; if (j> i) and (m1.x[i, j]=0) then v1: =true; if (j< i) and (m2.y[i, j]=0) then n2: =true; if (j> i) and (m2.y[i, j]=0) then v2: =true; end; if (n1=true) then showmessage('1-ая верхнетреугольная'); if (v1=true) then showmessage('1-ая нижнетреугольная'); if (n2=true) then showmessage('2-ая верхнетреугольная'); if (v2=true) then showmessage('2-ая нижнетреугольная'); if (v1=false) and (n1=false) then showmessage('1 - никакая'); if (v2=false) and (n2=false) then showmessage('2 - никакая'); end; initialization end.
Printscreen. Результат:
|