Professional Documents
Culture Documents
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
pcont1: TPageControl;
pcont2: TPageControl;
Analog: TTabSheet;
Diskrit: TTabSheet;
RealX: TTabSheet;
ImX: TTabSheet;
Magnitudo: TTabSheet;
Chart1: TChart;
Series1: TLineSeries;
Chart2: TChart;
Chart3: TChart;
Chart4: TChart;
Chart5: TChart;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Button6: TButton;
Edit6: TEdit;
Label3: TLabel;
Edit5: TEdit;
Series6: TBarSeries;
Series2: TBarSeries;
Series4: TBarSeries;
Series3: TBarSeries;
procedure Button1Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure CheckBox3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
begin
f1:=StrToInt(Edit1.Text);
if checkBox2.Checked = True then
begin f2:=StrToInt(Edit2.Text);
end
else begin f2:=0;
end;
if checkBox3.Checked = True then
begin f3:=StrToInt(Edit3.Text);
end
else begin f3:=0;
end;
dt:=1/StrToFloat(Edit4.Text);
pjg_t:=StrToFloat(Edit5.Text);
Series1.Clear;
a:=1;
t:=0;
while t<=pjg_t do
begin
s1:=a*Sin((2*3.14*f1*t));
s2:=a*Sin((2*3.14*f2*t));
s3:=a*Sin((2*3.14*f3*t));
if checkBox1.Checked then begin
ns:=0.2*Sin((2*3.14*100*t));
end
else
begin
ns:=0;
end;
x:=s1+s2+s3+ns;
Series1.AddXY(t,x);
t:=t+dt;
end;
Analog.Show;
end;
Series6.Clear;
a:=1;
n:=0;
while n<=leb_n do
begin
x1[n]:=a*Sin((2*3.14*(f1/del_n)*n));
x2[n]:=a*Sin((2*3.14*(f2/del_n)*n));
x3[n]:=a*Sin((2*3.14*(f3/del_n)*n));
if checkBox1.Checked then begin
x4:=a*Sin((2*3.14*(100/del_n)*n));
end
else begin
x4:=0;
end;
x[n]:=x1[n]+x2[n]+x3[n]+x4;
Series6.AddXY(n,x[n]);
n:=n+1;
end;
Diskrit.Show;
end;
begin
f1:=StrToInt(Edit1.Text);
if checkBox2.Checked = True then
begin f2:=StrToInt(Edit2.Text);
end
else begin f2:=0;
end;
if checkBox3.Checked = True then
begin f3:=StrToInt(Edit3.Text);
end
else begin f3:=0;
end;
del_n:=StrToFloat(Edit4.Text);
leb_n:=StrToInt(Edit6.Text);
Series3.Clear;
Series4.Clear;
a:=1;
n:=0;
while n<=leb_n do
begin
x1[n]:=a*Sin((2*3.14*(f1/del_n)*n));
x2[n]:=a*Sin((2*3.14*(f2/del_n)*n));
x3[n]:=a*Sin((2*3.14*(f3/del_n)*n));
if checkBox1.Checked then begin
x4:=a*Sin((2*3.14*(100/del_n)*n));
end else begin
x4:=0;
end;
x[n]:=x1[n]+x2[n]+x3[n]+x4;
n:=n+1;
end;
k:=0;
while k<=(leb_n-1)/2 do
begin
n:=0;
sig_euler1:=0;
sig_euler2:=0;
while n<=(leb_n-1)/2 do
begin
sig_euler1:=sig_euler1+(x[n]*cos((2*3.14*n*k)/leb_n));
sig_euler2:=sig_euler2-(x[n]*sin((2*3.14*n*k)/leb_n));
n:=n+1;
end;
real[k]:=sig_euler1;
imaji[k]:=sig_euler2;
Series3.AddXY(k,real[k]);
Series4.AddXY(k,imaji[k]);
k:=k+1;
end;
k:=0;
while k<=(leb_n-1)/2 do
begin
z[k]:=sqrt((real[k]*real[k])+(imaji[k]*imaji[k]));
f:=(k/(leb_n/2))*(del_n/2);
Series2.AddXY(f,z[k]);
k:=k+1;
end;
RealX.Show;
end;
while k<=(leb_n-1)/2 do
begin
z[k]:=sqrt((real[k]*real[k])+(imaji[k]*imaji[k]));
f:=(k/(leb_n/2))*(del_n/2);
Series2.AddXY(f,z[k]);
k:=k+1;
end;
Magnitudo.Show;
end;
end.