:
1.
2. ,
3. ,
4. ,
5.
6.
,
f(x)=xCos(x).
1. x MinX, MaxX, y MaxY MinY. (Ax, Bx) (Ay, By). .
kx=(Bx-Ax)/(MaxX-MinX)
ky=(By-Ay)/(MaxY-MinY)
2. kmodel , fmAll. File\New\Other\kmodel\fmAll . Ulab01_1.
3.
name=fmlab01_1
Caption = ' '
4. , :
Label1: Tlabel
Caption = ' '
edMinX: Tedit
text='-10'
Label2: TLabel
Caption = ' '
edMaxX: TEdit
Text = '10'
Label3: Tlabel
Caption = ' '
edD: TEdit
Text = '1000'
Button1: TButton
Caption = ''
5. .
var kx,ky:real;
x,y,minX,maxX:real;
d,dx,dy:real;
function f(x:real):real;
var temp:real;
begin
temp:=x*cos(x);
f:=temp;
end;
begin
tbClearClick(sender);
GetCxCy(cx,cy);
CoordLines(cx,cy);
maxX:=strtofloat(edMaxX.text);
minX:=strtofloat(edMinX.text);
dx:=MaxX-MinX;
dy:=dx;
kx:=(2*cx)/dx;
ky:=(2*cy)/dy;
d:=dx/strtoint(edD.text);
x:=MinX;
y:=f(x);
while x<=maxX do
begin
myline(kx*x,ky*y,kx*(x+d),ky*f(x+d));
x:=x+d;
y:=f(x);
Application.ProcessMessages;
end;
end;
6.
application.CreateForm(Tfmlab01_1,fmlab01_1);
fmlab01_1.show;
Ulab01_1 fmLab01_1
7. ,
,
.
x(t)=(a+b)*cos(t)-a*cos((a+b)*t/a);
y(t)=(a+b)*sin(t)-a*sin((a+b)*t/a);
2. kmodel , fmAll. file\New\kmodel\fmAll . Ulab01_2.
3.
name=fmlab01_2
Caption = ' '
4. , :
Label1: TLabel
|
|
Caption = 'a='
edA: TEdit
Text = '30'
Label2: TLabel
Caption = 'b='
edB: TEdit
Text = '20'
object Label3: TLabel
Caption = ' '
edD: TEdit
Text = '0,01'
Button1: TButton
Caption = ''
5. .
procedure Tfmlab01_2.Button1Click(Sender: TObject);
var t,x,y,d,maxT:real;
a,b:integer;
function fx(t:real):real;
var temp:real;
begin
temp:=(a+b)*cos(t)-a*cos((a+b)*t/a);
fx:=temp;
end;
function fy(t:real):real;
var temp:real;
begin
temp:=(a+b)*sin(t)-a*sin((a+b)*t/a);
fy:=temp;
end;
function nod(a,b:integer):integer;
begin
if (a=0)or(b=0) then nod:=a+b
else
begin
if a>b then nod:=nod(b,a mod b)
else nod:=nod(a,b mod a);
end;
end;
begin
tbClearClick(sender);
GetCxCy(cx,cy);
coordlines(cx,cy);
a:=strtoint(edA.text);
b:=strtoint(edB.text);
d:=strtofloat(edD.text);
t:=0;
x:=fx(t);
y:=fy(t);
if (b mod a)=0 then maxT:=2*pi
else maxT:=2*pi*(a/nod(a,b));
while t<=maxT do
begin
myline(x,y,fx(t+d),fy(t+d));
x:=fx(t+d);
y:=fy(t+d);
t:=t+d;
application.processMessages;
end;
end;
6.
application.CreateForm(Tfmlab01_2,fmlab01_2);
fmlab01_2.show;
Ulab01_2 fmLab01_2
7. ,
,
1. "".
r(f)=a*sin(k*f)
2. kmodel , fmAll. file\New\kmodel\fmAll . Ulab01_3.
3.
name=fmlab01_3
Caption = ' '
4. , :
Label1: TLabel
Caption = 'a='
edA: TEdit
Text = '120'
Label2: TLabel
Caption = 'k='
edK: TEdit
Text = '2'
Label3: TLabel
Caption = ' '
edD: TEdit
Text = '0,01'
Button1: TButton
Caption = ''
5. .
procedure Tfmlab01_3.Button1Click(Sender: TObject);
var t,x,y,d,k,maxT:real;
a:integer;
function fx(t:real):real;
var temp:real;
begin
temp:=a*sin(k*t)*cos(t);
fx:=temp;
end;
function fy(t:real):real;
var temp:real;
begin
temp:=a*sin(k*t)*sin(t);
fy:=temp;
end;
begin
tbClearClick(sender);
GetCxCy(cx,cy);
a:=strtoint(edA.text);
k:=strtofloat(edK.text);
d:=strtofloat(edD.text);
t:=0;
x:=fx(t);
y:=fy(t);
if frac(k)=0 then maxT:=2*pi
else if k>1 then maxT:=4*pi*k
else maxT:=4*pi/k;
while t<=maxT do
begin
myline(x,y,fx(t+d),fy(t+d));
x:=fx(t+d);
y:=fy(t+d);
t:=t+d;
application.processMessages;
end;
end;
6.
|
|
application.CreateForm(Tfmlab01_3,fmlab01_3);
fmlab01_3.show;
Ulab01_3 fmLab01_3
7. ,
1. - , . . R , . ; , . , :
x=(A-B)cos(t)+Rcos(s)
y=(A-B)sin(t)-Rsin(s)
s=(A/B)t, R<B<A
t 0 2pin,
n=B/NOD(B,A)
2. kmodel , fmAll. file\New\kmodel\fmAll . Ulab01_4.
3.
name=fmlab01_4
Caption = ''
4. , :
Label1: TLabel
Caption = ' '
edA: TEdit
Text = '200'
Label2: TLabel
Caption = ' '
edB: TEdit
Text = '140'
Label3: TLabel
Caption = ' '
edR: TEdit
Text = '80'
Label4: TLabel
Caption = ' '
edD: TEdit
Text = '0,01'
Button1: TButton
Caption = ''
5. .
procedure Tfmlab01_4.Button1Click(Sender: TObject);
var t,x,y,d,maxT:real;
a,b,r:integer;
function fx(t:real):real;
var temp:real;
begin
temp:=(a-b)*cos(t)+R*cos(a*t/b);
fx:=temp;
end;
function fy(t:real):real;
var temp:real;
begin
temp:=(a-b)*sin(t)-R*sin(a*t/b);
fy:=temp;
end;
function nod(a,b:integer):integer;
begin
if (a=0)or(b=0) then nod:=a+b
else
begin
if a>b then nod:=nod(b,a mod b)
else nod:=nod(a,b mod a);
end;
end;
begin
tbClearClick(sender);
GetCxCy(cx,cy);
a:=strtoint(edA.text);
b:=strtoint(edB.text);
r:=strtoint(edR.text);
d:=strtofloat(edD.text);
t:=0;
x:=fx(t);
y:=fy(t);
maxT:=2*pi*(B/NOD(B,A));
while t<=maxT do
begin
myline(x,y,fx(t+d),fy(t+d));
x:=fx(t+d);
y:=fy(t+d);
t:=t+d;
application.processMessages;
end;
end;
6.
application.CreateForm(Tfmlab01_4,fmlab01_4);
fmlab01_4.show;
Ulab01_4 fmLab01_4
7. ,
1.
2.
3. y=2*x3+cos(x);
4. y=5*x4+sin(x)+|x-1|;
5. y=-4*x2+arccos(x);
6. y=2*x3+Tg(x);
7. r(f)=a*cos(k*f);
8. r(f)=a*Tg(k*f);
:
1. , ;
2. [a,b];
3. (temp function fx, function fy).
4. ?
5. r(f)=a*sin(k*f);