Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Код программы: Unit1
Министерство сельского хозяйства Российской Федерации Департамент научно-технической политики и образования Федеральное государственное бюджетное образовательное учреждение Высшего образования КРАСНОЯРСКИЙ ГОСУДАРСКВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ Институт Экономики и финансов АПК
Кафедра «Бизнес информатики и информационно-компьютерной безопасности»
ОТЧЕТ По дисциплине «Объектно-ориентированное программирование» Лабораторная работа №3
Выполнили студенты 4 курса Очной формы обучения Института Эиф АПК (Ворончихина А.А.) Группы 46 ________________________ (Арчимаева Е.Г.) (подпись) Представлена на проверку ________________________ (дата) Проверена Титовская Т.С. ________________________ (подпись)
Красноярск 2015 Задание: Объединить 2 варианта в один приект. 1 вариант: Создать класс квадратная матрица, поля класса – размерность и элементы матрицы. Методы класса: проверка, является ли матрица матрица верхнетреугольной или нижнетреугольной, вывод матрицы. В классе предусмотреть методы перегрузки операций: сложение, вычитание, умножение матриц, умножение матрицы на число. 2 вариант: Создать класс комплексное число в алгебраической форме z=x+y × i, поля класса – действительная (x) и мнимая (y) части числа. Методы класса: вычисление корня комплексного числа, вывод комплексного числа. В классе предусмотреть методы перегрузки операций: сложение, вычитание, деление и умножение комплексных чисел. Код программы: Unit1 unit Unit1; interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Menus, StdCtrls, unit2, unit3; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; Button9: TButton; Button10: TButton; Button11: TButton; Button12: TButton; Button13: TButton; Edit1: 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; Edit19: TEdit; Edit20: TEdit; Edit21: TEdit; Edit22: TEdit; Edit23: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; MainMenu1: TMainMenu; Memo1: TMemo; Memo2: TMemo; MenuItem1: TMenuItem; MenuItem2: TMenuItem; procedure Button10Click(Sender: TObject); procedure Button11Click(Sender: TObject); procedure Button12Click(Sender: TObject); procedure Button13Click(Sender: TObject); 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); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure MenuItem1Click(Sender: TObject); procedure MenuItem2Click(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; m1: TMatr; m2: TMatr; m3: TMatr; m4: TMatr; m5: TMatr; m6: TMatr; Chislo1: Compl_Ch; Chislo2: Compl_Ch; Chislo3: Compl_Ch; implementation procedure TForm1.Button1Click(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.Button2Click(Sender: TObject); var str: string; i, j: integer; a, b: Tmatr; begin str: =m1.MatrToStr(); Memo1.Lines.Add(str); str: =m2.MatrToStr1(); Memo1.Lines.Add(str); end; procedure TForm1.Button3Click(Sender: TObject); var str: string; s: string; begin m3.create(); m3: =m1+m2; str: =m3.MatrToStr2(); Memo1.Lines.Add(str); 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; procedure TForm1.MenuItem1Click(Sender: TObject); begin Button1.Visible: =true; Button2.Visible: =true; Button3.Visible: =true; Button4.Visible: =true; Button5.Visible: =true; Button6.Visible: =true; Button7.Visible: =true; Button8.Visible: =false; Button9.Visible: =false; Button10.Visible: =false; Button11.Visible: =false; Button12.Visible: =false; Button13.Visible: =false; Edit1.Visible: =true; Edit2.Visible: =true; Edit3.Visible: =true; Edit4.Visible: =true; Edit5.Visible: =true; Edit6.Visible: =true; Edit7.Visible: =true; Edit8.Visible: =true; Edit9.Visible: =true; Edit10.Visible: =true; Edit11.Visible: =true; Edit12.Visible: =true; Edit13.Visible: =true; Edit14.Visible: =true; Edit15.Visible: =true; Edit16.Visible: =true; Edit17.Visible: =true; Edit18.Visible: =true; Edit19.Visible: =true; Edit20.Visible: =false; Edit21.Visible: =false; Edit22.Visible: =false; Edit23.Visible: =false; Memo1.Visible: =true; Memo2.Visible: =false; Label1.Visible: =false; Label2.Visible: =false; Label3.Visible: =false; Label4.Visible: =false; end; procedure TForm1.Button8Click(Sender: TObject); var str1: string; begin Memo2.Lines.Clear; chislo1: =Compl_Ch.Create; chislo2: =Compl_Ch.Create; chislo1.Re: =StrTofloat(Edit20.text); chislo1.Im: =StrTofloat(Edit21.text); chislo2.Re: =StrTofloat(Edit22.text); chislo2.Im: =StrTofloat(Edit23.text); chislo3: =chislo1+chislo2; Str1: ='chislo1+chislo2= '+ FloatToStr(chislo3.Re) + '+' + FloatToStr(chislo3.Im) + 'i'; Memo2.Lines.Add(Str1); end; procedure TForm1.Button9Click(Sender: TObject); var str1: string; begin Memo2.Lines.Clear; chislo1: =Compl_Ch.Create; chislo2: =Compl_Ch.Create; chislo1.Re: =StrTofloat(Edit20.text); chislo1.Im: =StrTofloat(Edit21.text); chislo2.Re: =StrTofloat(Edit22.text); chislo2.Im: =StrTofloat(Edit23.text); chislo3: =chislo1-chislo2; Str1: ='chislo1-chislo2= '+ FloatToStr(chislo3.Re) + '+' + FloatToStr(chislo3.Im) + 'i'; Memo2.Lines.Add(Str1); end; procedure TForm1.Button10Click(Sender: TObject); var str1: string; begin Memo2.Lines.Clear; chislo1: =Compl_Ch.Create; chislo2: =Compl_Ch.Create; chislo1.Re: =StrTofloat(Edit20.text); chislo1.Im: =StrTofloat(Edit21.text); chislo2.Re: =StrTofloat(Edit22.text); chislo2.Im: =StrTofloat(Edit23.text); chislo3: =chislo1*chislo2; Str1: ='chislo1*chislo2= '+ FloatToStr(chislo3.Re) + '+' + FloatToStr(chislo3.Im) + 'i'; Memo2.Lines.Add(Str1); end; procedure TForm1.Button11Click(Sender: TObject); var str1: string; begin Memo2.Lines.Clear; chislo1: =Compl_Ch.Create; chislo2: =Compl_Ch.Create; chislo1.Re: =StrTofloat(Edit20.text); chislo1.Im: =StrTofloat(Edit21.text); chislo2.Re: =StrTofloat(Edit22.text); chislo2.Im: =StrTofloat(Edit23.text); chislo3: =chislo1/chislo2; Str1: ='chislo1/chislo2= '+ FloatToStr(chislo3.Re) + '+' + FloatToStr(chislo3.Im) + 'i'; Memo2.Lines.Add(Str1); end; procedure TForm1.Button12Click(Sender: TObject); var str1: string; begin Memo2.Lines.Clear; chislo1: =Compl_Ch.Create; chislo2: =Compl_Ch.Create; chislo1.Re: =StrTofloat(Edit20.text); chislo1.Im: =StrTofloat(Edit21.text); chislo2.Re: =StrTofloat(Edit22.text); chislo2.Im: =StrTofloat(Edit23.text); Str1: ='Argument 1 chisla'+FloatToStr(chislo1.Argument()); Memo2.Lines.Add(Str1); end; procedure TForm1.Button13Click(Sender: TObject); var str1: string; begin Memo2.Lines.Clear; chislo1: =Compl_Ch.Create; chislo2: =Compl_Ch.Create; chislo1.Re: =StrTofloat(Edit20.text); chislo1.Im: =StrTofloat(Edit21.text); chislo2.Re: =StrTofloat(Edit22.text); chislo2.Im: =StrTofloat(Edit23.text); Str1: ='Argument 2 chisla'+FloatToStr(chislo2.Argument()); Memo2.Lines.Add(Str1); end; end. procedure TForm1.MenuItem2Click(Sender: TObject); begin Button1.Visible: =false; Button2.Visible: =false; Button3.Visible: =false; Button4.Visible: =false; Button5.Visible: =false; Button6.Visible: =false; Button7.Visible: =false; Button8.Visible: =true; Button9.Visible: =true; Button10.Visible: =true; Button11.Visible: =true; Button12.Visible: =true; Button13.Visible: =true; Edit1.Visible: =false; Edit2.Visible: =false; Edit3.Visible: =false; Edit4.Visible: =false; Edit5.Visible: =false; Edit6.Visible: =false; Edit7.Visible: =false; Edit8.Visible: =false; Edit9.Visible: =false; Edit10.Visible: =false; Edit11.Visible: =false; Edit12.Visible: =false; Edit13.Visible: =false; Edit14.Visible: =false; Edit15.Visible: =false; Edit16.Visible: =false; Edit17.Visible: =false; Edit18.Visible: =false; Edit19.Visible: =false; Edit20.Visible: =true; Edit21.Visible: =true; Edit22.Visible: =true; Edit23.Visible: =true; Memo1.Visible: =false; Memo2.Visible: =true; Label1.Visible: =true; Label2.Visible: =true; Label3.Visible: =true; Label4.Visible: =true; end; Unit 2 unit Unit2; interface uses Classes, SysUtils; type TMatr=class private public x: array[1..3, 1..3] of real; y: array[1..3, 1..3] of real; z: array[1..3, 1..3] of real; 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;
implementation uses unit1; 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; end. Unit 3 unit Unit3; interface uses Classes, SysUtils; type Compl_Ch=class private public Re: real; Im: real; Constructor Create(); Function Argument(): real; end; Operator+(const a, b: Compl_Ch)r: Compl_Ch; Operator-(const a, b: Compl_Ch)r: Compl_Ch; Operator*(const a, b: Compl_Ch)r: Compl_Ch; Operator/(const a, b: Compl_Ch)r: Compl_Ch; implementation uses unit1; Constructor Compl_Ch.Create; begin Re: =0; Im: =0; inherited Create; end; Function Compl_Ch.Argument(): real; begin argument: =arctan(Im/Re); end; Operator+(const a, b: Compl_Ch)r: Compl_Ch; begin r: =Compl_Ch.Create(); r.Re: =a.Re+b.Re; r.Im: =a.Im+b.Im; end; Operator-(const a, b: Compl_Ch)r: Compl_Ch; begin r: =Compl_Ch.Create(); r.Re: =a.Re-b.Re; r.Im: =a.Im-b.Im; end; Operator*(const a, b: Compl_Ch)r: Compl_Ch; begin r: =Compl_Ch.Create(); r.Re: =a.Re*b.Re; r.Im: =a.Im*b.Im; end; Operator/(const a, b: Compl_Ch)r: Compl_Ch; begin r: =Compl_Ch.Create(); r.Re: =a.Re/b.Re; r.Im: =a.Im/b.Im; end; end.
Printscreen: Вариант 1:
Вариант 2:
|