-
Notifications
You must be signed in to change notification settings - Fork 0
/
Unit1.pas
107 lines (92 loc) · 2.03 KB
/
Unit1.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, TeEngine, Series, ExtCtrls, TeeProcs, Chart, XPMan;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
Chart: TChart;
Series1: TLineSeries;
Gj1: TMenuItem;
N4: TMenuItem;
PopupMenu: TPopupMenu;
N3D1: TMenuItem;
XPManifest1: TXPManifest;
procedure N2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Visualize;
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N3D1Click(Sender: TObject);
private
{ Private declarations }
public
Tmin, Tmax, A, C: Real;
end;
var
Form1: TForm1;
implementation
uses Unit2, math;
{$R *.dfm}
procedure TForm1.N2Click(Sender: TObject);
begin
form2.showmodal;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
tmin:=0;
Tmax:=5;
A := 1;
C:=1;
visualize;
end;
procedure TForm1.Visualize;
var
dt, xi: real;
amount: integer;
begin
amount := 100;
dt := (Tmax - Tmin)/amount;
xi:=Tmin;
Chart.FreeAllSeries;
chart.AddSeries(TLineSeries.Create(Self));
chart.AddSeries(TLineSeries.Create(Self));
chart.AddSeries(TLineSeries.Create(Self));
while xi<=Tmax do
begin
chart.Series[0].AddXY(xi, exp(-A*xi)*sin(2*pi*C*xi));
chart.Series[1].AddXY(xi, exp(-A*xi));
chart.Series[2].AddXY(xi, -exp(-A*xi));
xi:=xi+dt;
end;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
close;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
messagedlg('Ðàçðàáîò÷èê - ýòî Ñòåáàåâ Äìèòðèé, ñòóäåíò ÊÑ-41.', mtInformation, [mbok], 0);
end;
procedure TForm1.N3D1Click(Sender: TObject);
var
i: integer;
begin
if n3d1.Tag = 0 then
begin
n3d1.Caption := 'Âêëþ÷èòü 2D ðåæèì';
n3d1.Tag := 1;
chart.View3D := true;
end
else
begin
n3d1.Caption := 'Âêëþ÷èòü 3D ðåæèì';
n3d1.Tag := 0;
chart.View3D := false;
end;
end;
end.