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

Ознайомлення з інструментальним середовищем програмування Delphi. Робота з простими візуальними об’єктами

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

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

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

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

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

Міністерство освіти і науки України Хмельницький національний університет Кафедра системного програмування Лабораторна робота №4 з програмування на тему: «Ознайомлення з інструментальним середовищем програмування Delphi. Робота з простими візуальними об’єктами» Лабораторна робота №3 Тема: Ознайомлення з інструментальним середовищем програмування Delphi. Робота з простими візуальними об’єктами. Мета:ознайомитись з інструментальним середовищем програмування Delphi та його простими візуальними об’єктами. Завдання Розробити проект, що табулює задану функцію на відрізку АВ з кроком h=(B-A)/(n-1). На головній формі проекту вводяться початкові дані (початок та кінець відрізка АВ, крок табулювання h, кількість ітерацій n, а також значення додаткових змінних) та розміщуються кнопки: виклик форм відображення результатів та кнопка завершення проекту в цілому. На другій формі розмістити графік функції, при цьому заборонити закриття цієї форми стандартними засобами. На тертій формі розмістити результати табулювання функції у вигляді таблиці. Таблиця організована за допомогою компонента TStringGrid. При цьому в першій колонці вказується номер ітерації, в другій колонці – аргумент функції, в третій – результат обчислення, в четверту виводиться умова, відповідно до якої проведено обчислення функції. Забезпечити введення початкових даних по замовчуванню. При введенні заданих величин або зміні їхнього значення автоматично повинно обчислюватись значення незаданої величини і виводитись у відповідне поле. При введенні некоректних даних в форму видати повідомлення про помилку і без виведення результатів. (x-z)/x, 0<=x<1.5 y = (ln x2)/(lg x3) + M, 1.5<=x<2.5 [cos(x/s) + sin(s/x) ]*z, x>2.5 Unit1.pas unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, unit2,unit3; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit; GroupBox1: TGroupBox; GroupBox2: TGroupBox; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: char); procedure Edit2KeyPress(Sender: TObject; var Key: char); procedure Edit3Change(Sender: TObject); procedure Edit3KeyPress(Sender: TObject; var Key: char); procedure Edit5KeyPress(Sender: TObject; var Key: char); procedure Edit6KeyPress(Sender: TObject; var Key: char); procedure Edit7KeyPress(Sender: TObject; var Key: char); private { private declarations } public { public declarations } end; var Form1: TForm1; A,B,Z,M,S:real; N,H:integer; implementation { TForm1 } procedure TForm1.Button1Click(Sender: TObject); begin if MessageDlg('Табуляція','Дійсно закрити?',mtWarning,mbYesNo,0)=mrYes then Form1.Close; end; procedure TForm1.Button2Click(Sender: TObject); begin Z:=StrToFloat(Edit5.Text); M:=StrToFloat(Edit6.Text); S:=StrToFloat(Edit7.Text); A:=StrToFloat(Edit1.Text); B:=StrToFloat(Edit2.Text); H:=StrToInt(Edit3.Text); if H<>0 then N:=trunc(abs(A-B)/H)+1; if (S=0) then ShowMessage('Змінна S не може дорівнювати 0!') else if (H=0) then ShowMessage('Крок H не може дорівнювати 0!') else Form2.Show; end; procedure TForm1.Button3Click(Sender: TObject); begin Z:=StrToFloat(Edit5.Text); M:=StrToFloat(Edit6.Text); S:=StrToFloat(Edit7.Text); A:=StrToFloat(Edit1.Text); B:=StrToFloat(Edit2.Text); H:=StrToInt(Edit3.Text); if H<>0 then N:=trunc(abs(A-B)/H)+1; if (S=0) then ShowMessage('Змінна S не може дорівнювати 0!') else if (H=0) then ShowMessage('Крок H не може дорівнювати 0!') else Form3.Show; end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char); begin case Key of '0'..'9',#8: ; ',': if (pos(',',Edit1.Text)<>0) or (Edit1.Text='') then Key:=#0; else Key:=#0; end; end; procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: char); begin case Key of '0'..'9',#8: ; ',': if (pos(',',Edit2.Text)<>0) or (Edit2.Text='') then Key:=#0; else Key:=#0; end; end; procedure TForm1.Edit3Change(Sender: TObject); begin if Edit1.Text<>'' then A:=StrToFloat(Edit1.Text); if Edit2.Text<>'' then B:=StrToFloat(Edit2.Text); if Edit3.Text<>'' then H:=StrToInt(Edit3.Text); if (Edit1.Text<>'') and (Edit2.Text<>'') and (Edit3.Text<>'') and (H<>0) then begin N:=trunc(abs(A-B)/H)+1; Edit4.Text:=IntToStr(N); end; if (Edit1.Text<>'') and (Edit2.Text<>'') and (Edit3.Text<>'') and (Edit4.Text<>'') and (Edit5.Text<>'') and (Edit6.Text<>'') and (Edit7.Text<>'') then begin Button2.Enabled:=True; Button3.Enabled:=True; end else begin Button2.Enabled:=False; Button3.Enabled:=False; end; end; procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: char); begin case Key of '0'..'9',#8: ; else Key:=#0; end; end; procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: char); begin case Key of '0'..'9',#8: ; ',': if (pos(',',Edit5.Text)<>0) or (Edit5.Text='') or (Edit5.Text='-') then Key:=#0; '-': if Edit5.Text<>'' then Key:=#0; else Key:=#0; end; end; procedure TForm1.Edit6KeyPress(Sender: TObject; var Key: char); begin case Key of '0'..'9',#8: ; ',': if (pos(',',Edit6.Text)<>0) or (Edit6.Text='') or (Edit6.Text='-') then Key:=#0; '-': if Edit6.Text<>'' then Key:=#0; else Key:=#0; end; end; procedure TForm1.Edit7KeyPress(Sender: TObject; var Key: char); begin case Key of '0'..'9',#8: ; ',': if (pos(',',Edit7.Text)<>0) or (Edit7.Text='') or (Edit7.Text='-') then Key:=#0; '-': if Edit7.Text<>'' then Key:=#0; else Key:=#0; end; end; initialization {$I unit1.lrs} end. Unit2.pas unit Unit2; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls; type { TForm2 } TForm2 = class(TForm) Button1: TButton; Button2: TButton; Panel1: TPanel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { private declarations } public { public declarations } end; var Form2: TForm2; x0,y0:integer; implementation uses Unit1; { TForm2 } function F(x:real):real; var ft:real; begin if x=0 then F:=0; if (x>0) and (x<1.5) then F:=(x-z)/x; if (x>=1.5) and (x<=2.5) then F:=ln(x*x)/(ln(x*x*x)/ln(10))+M; if (x>2.5) then F:=(cos(x/s)+sin(s/x))*z; end; procedure TForm2.Button1Click(Sender: TObject); begin Form2.Hide; end; procedure TForm2.Button2Click(Sender: TObject); var i:integer; x,y:real; begin x0:=(Panel1.Width-Panel1.Left) div 2; y0:=(Panel1.Height-Panel1.Top) div 2; Panel1.Canvas.Line(Panel1.Left,y0,Panel1.Left+Panel1.Width,y0); Panel1.Canvas.Line(x0,Panel1.Top,x0,Panel1.Top+Panel1.Height); if A>B then begin y:=A; a:=B; b:=y; end; x:=a; while x<=b do begin Panel1.Canvas.Line(x0+round((x)*10),y0-round(F(x)*10),x0+round((x+1)*10),y0-round(F(x+1)*10)); x:=x+1; end; end; initialization {$I unit2.lrs} end. Unit3.pas unit Unit3; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Grids, Unit2; type { TForm3 } TForm3 = class(TForm) Button1: TButton; Button2: TButton; SG: TStringGrid; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { private declarations } public { public declarations } end; var Form3: TForm3; implementation uses Unit1; { TForm3 } procedure TForm3.Button1Click(Sender: TObject); var i,j:integer; begin Form3.Hide; for i:=0 to SG.ColCount-1 do for j:=0 to SG.RowCount-1 do SG.Cells[i,j]:=''; end; procedure TForm3.Button2Click(Sender: TObject); var i:integer; x:real; begin SG.RowCount:=N+1; if A<B then x:=A else x:=B; for i:=1 to N do begin SG.Cells[0,i]:=IntToStr(i); SG.Cells[1,i]:=FloatToStr(x); SG.Cells[2,i]:=FloatToStr(F(x)); if (x>0) and (x<1.5) then SG.Cells[3,i]:='(x-z)/x'; if (x>=1.5) and (x<=2.5) then SG.Cells[3,i]:='ln(x*x)/(ln(x*x*x)/ln(10))+M'; if (x>2.5) then SG.Cells[3,i]:='(cos(x/s)+sin(s/x))*z'; x:=x+h; end; end; initialization {$I unit3.lrs} end. Висновок. Виконавши лабораторну роботу, я освоїв роботу програм з багатьма формами, а також закріпив навички роботи з простими компонентами середовища Delphi, такими як TLabel, TEdit, TButton, опрацював способи побудови графіків за допомогою властивості Canvas, засвоїв навички створення найпростіших обробників подій з можливістю перевірки вхідних даних та виведення інформаційних повідомлень, а також навчився працювати з таблицями компоненту StringGrid. / / /
Антиботан аватар за замовчуванням

28.03.2013 22:17

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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