Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Код программы: 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:


<== предыдущая лекция | следующая лекция ==>
Первый этап: Нужно моделировать производственную функцию. | Выполнение работы




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.