DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Створення власних класів та об’єктів

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Об’єктно-орієнтоване програмування

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти науки молоді та спорту Національний університет «Львівська політехніка» Лабораторна робота № 4 З Основ об’єктно-орієнтованого програмування На тему Створення власних класів та об’єктів Мета: засвоїти основні поняття об’єктно-орієнтованого програмування, навчитися створювати свої об’єкти і будувати програми, засновані на об’єктному підході. Завдання: Описати клас для векторів, що задаються координатами кінців у тривимірному просторі. Забезпечити операції додавання та віднімання векторів з одержанням нового вектора (суми чи різниці), обчислення скалярного добутку двох векторів, довжини вектора, косинуса кута між векторами. Код програми: unit MyVec; interface uses classes, Sysutils, Math; type TVector = class (TObject) private public Fx:Integer; Fy:Integer; Fz:Integer; constructor Create; function AbsVec():Extended; procedure Sum(V1:TVector); procedure Diff(V1:TVector); function Scal(V1:TVector):Int64; function Len(V1:TVector):Extended; function Ang(V1:TVector):Extended; end; implementation constructor TVector.Create; begin Fx:=0; Fy:=0; Fz:=0; end; function TVector.AbsVec():Extended; begin Result:=Sqrt(Fx*Fx+Fy*Fy+Fz*Fz); end; procedure TVector.Sum(V1:TVector); begin Fx:=V1.Fx+Fx; Fy:=V1.Fy+Fy; Fz:=V1.Fz+Fz; end; procedure TVector.Diff(V1:TVector); begin Fx:=Fx-V1.Fx; Fy:=Fy-V1.Fy; Fz:=Fz-V1.Fz; end; function TVector.Scal(V1:TVector):int64; begin Result:=(Fx*V1.Fx+Fy*V1.Fy+Fz*V1.Fz); end; function TVector.Len(V1:TVector):Extended; begin Result:=Sqrt(Sqr(Fx-V1.Fx)+Sqr(Fy-V1.Fy)+Sqr(Fz-V1.fz)); end; function TVector.Ang(V1:TVector):Extended; begin Result:=(Fx*V1.Fx+Fy*V1.Fy+Fz*V1.Fz)/ (Sqrt(Sqr(Fx)+Sqr(Fy)+Sqr(Fz))* Sqrt(Sqr(V1.Fx)+Sqr(V1.Fy)+Sqr(V1.Fz))); end; end. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, MyVec; type TForm1 = class(TForm) lbl1: TLabel; lbl2: TLabel; lbl3: TLabel; edt1: TEdit; edt2: TEdit; lbl4: TLabel; lbl5: TLabel; lbl6: TLabel; edt3: TEdit; edt4: TEdit; lbl7: TLabel; lbl8: TLabel; edt5: TEdit; edt6: TEdit; lbl9: TLabel; edt7: TEdit; btn1: TButton; btn2: TButton; btn3: TButton; btn4: TButton; btn5: TButton; lbl10: TLabel; lbl11: TLabel; lbl12: TLabel; lbl13: TLabel; edt8: TEdit; edt9: TEdit; edt10: TEdit; //procedure FormCreate(Sender: TObject); procedure btn1Click(Sender: TObject); procedure btn2Click(Sender: TObject); procedure btn3Click(Sender: TObject); procedure btn5Click(Sender: TObject); procedure btn4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} { procedure TForm1.btn1Click(Sender: TObject); var V1,V2:TVector; begin V1:= TVector.Create; V2:= TVector.Create; V1.Fx:=StrToInt(edt1.Text); V1.Fy:=StrToInt(edt2.Text); V1.Fz:=StrToInt(edt5.Text); V2.Fx:=StrToInt(edt3.Text); V2.Fy:=StrToInt(edt4.Text); V2.Fz:=StrToInt(edt6.Text); edt7.Text:=IntToStr(0); V1.Sum(V2); edt8.Text:=IntToStr(V1.Fx); edt9.Text:=IntToStr(V1.Fy); edt10.Text:=IntToStr(V1.Fz); end; procedure TForm1.btn2Click(Sender: TObject); var V1,V2:TVector; begin V1:= TVector.Create; V2:= TVector.Create; V1.Fx:=StrToInt(edt1.Text); V1.Fy:=StrToInt(edt2.Text); V1.Fz:=StrToInt(edt5.Text); V2.Fx:=StrToInt(edt3.Text); V2.Fy:=StrToInt(edt4.Text); V2.Fz:=StrToInt(edt6.Text); edt7.Text:=IntToStr(0); V1.Diff(V2); edt8.Text:=IntToStr(V1.Fx); edt9.Text:=IntToStr(V1.Fy); edt10.Text:=IntToStr(V1.Fz); end; procedure TForm1.btn3Click(Sender: TObject); var V1,V2:TVector; begin V1:= TVector.Create; V2:= TVector.Create; V1.Fx:=StrToInt(edt1.Text); V1.Fy:=StrToInt(edt2.Text); V1.Fz:=StrToInt(edt5.Text); V2.Fx:=StrToInt(edt3.Text); V2.Fy:=StrToInt(edt4.Text); V2.Fz:=StrToInt(edt6.Text); edt8.Text:=IntToStr(0); edt9.Text:=IntToStr(0); edt10.Text:=IntToStr(0); edt7.Text:=IntToStr(V1.Scal(V2)); end; procedure TForm1.btn5Click(Sender: TObject); var V1,V2:TVector; begin V1:= TVector.Create; V2:= TVector.Create; V1.Fx:=StrToInt(edt1.Text); V1.Fy:=StrToInt(edt2.Text); V1.Fz:=StrToInt(edt5.Text); V2.Fx:=StrToInt(edt3.Text); V2.Fy:=StrToInt(edt4.Text); V2.Fz:=StrToInt(edt6.Text); edt8.Text:=IntToStr(0); edt9.Text:=IntToStr(0); edt10.Text:=IntToStr(0); edt7.Text:=FloatToStr(V1.Ang(V2)); end; procedure TForm1.btn4Click(Sender: TObject); var V1,V2:TVector; begin V1:= TVector.Create; V2:= TVector.Create; V1.Fx:=StrToInt(edt1.Text); V1.Fy:=StrToInt(edt2.Text); V1.Fz:=StrToInt(edt5.Text); V2.Fx:=StrToInt(edt3.Text); V2.Fy:=StrToInt(edt4.Text); V2.Fz:=StrToInt(edt6.Text); edt8.Text:=IntToStr(0); edt9.Text:=IntToStr(0); edt10.Text:=IntToStr(0); edt7.Text:=FloatToStr(V1.Len(V2)); end; end. Результат Роботи:  Висновок: На даній лабораторній роботі я освоїв роботу з класами, та написав програму яка демонструє роботу з трьохвимірними векторами.
Антиботан аватар за замовчуванням

20.02.2013 19:42

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!