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

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

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

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

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

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

Міністерство освіти науки молоді та спорту Національний університет «Львівська політехніка» Лабораторна робота № 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:02-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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