Скачиваний:
284
Добавлен:
04.03.2014
Размер:
2.83 Кб
Скачать
program FGrafik;
uses GRAPH;
const k=101; xn=65; xk=625;
yn=20;yk=400;
y1n=20;y1k=400;
y2n=20;y2k=400;
ndx=10;ndy=10;
n=5;m=2;
var i,j,driver,mode,lx,ly,mx,my,m1y,m2y:integer;
kx,ky,k1y,k2y:array [1..k] of integer;
x,y,y1,y2:array [1..k] of real;
dx,dy,dy1,dy2,rx,ry,r1y,r2y,ymin,y1min,y2min,ymax,y1max,y2max,xmin,xmax:real;
st:string;
Function F(x:real):real;
begin
F:=Ln(3*x+45*x-3);
end;
Function G(x:real): real;
begin
G:=cos(x*x*x); end;
Function t(x:real):real;
begin
t:=sin(x)*sin(x); end;
Begin
writeln('Input xmin,xmax?');readln(xmin,xmax);
dx:=(xmax-xmin)/(k-1);
driver:=detect;
INITGRAPH(driver,mode,'E:\tp5');
ymin:=1e10;ymax:=-1e10;
y1min:=1e10;y1max:=-1e10;
y2min:=1e10;y2max:=-1e10;
for i:=1 to k do begin
x[i]:=xmin+(i-1)*dx;
y[i]:=f(x[i]);
y1[i]:=g(x[i]);
y2[i]:=t(x[i]);
if y[i]<ymin then ymin:=y[i];
if y1[i]<y1min then y1min:=y1[i];
if y2[i]<y2min then y2min:=y2[i];
if y[i]>ymax then ymax:=y[i];
if y1[i]>y1max then y1max:=y1[i];
if y2[i]>y2max then y2max:=y2[i];
end;
rx:=x[k]-x[1];
ry:=ymax-ymin;
r1y:=y1max-y1min;
r2y:=y2max-y2min;
mx:=xk-xn;
my:=yk-yn;
m1y:=y1k-y1n;
m2y:=y2k-y2n;
for i:=1 to k do begin
kx[i]:=round((x[i]-x[1])*(mx/rx)+xn);
ky[i]:=round((ymax-y[i])*(my/ry)+yn);
k1y[i]:=round((y1max-y1[i])*(m1y/r1y)+y1n);
k2y[i]:=round((y2max-y2[i])*(m2y/r2y)+y2n);
end;
setcolor(12);
setlinestyle(0,4,3);
for i:=1 to k-1 do line(kx[i],ky[i],kx[i+1],ky[i+1]);
setcolor(14);
for i:=1 to k-1 do line(kx[i],k1y[i],kx[i+1],k1y[i+1]);
setcolor(9);
for i:=1 to k-1 do line(kx[i],k2y[i],kx[i+1],k2y[i+1]);
setcolor(3);
setlinestyle(2,4,1);
rectangle(xn,yn,xk,yk);
lx:=(xk-xn)div ndx;
dx:=(x[k]-x[1])/ndx;
for i:=1 to ndx+1 do begin
line(xn+lx*(i-1),yn,xn+lx*(i-1),yk);
str((xmin+(i-1)*dx):n:m,st);
outtextxy(xn+lx*(i-1)-(n-m)*8+4,yk+14,st);end;
ly:=(yk-yn) div ndy;
dy:=(ymax-ymin)/ndy;
for i:=1 to ndy+1 do begin
line(xn,yn+(i-1)*ly,xk,yn+(i-1)*ly);
str((ymax-(i-1)*dy):n:m,st);
outtextxy((xn-(n*8)),yn+(i-1)*ly-4,st); end;
settextstyle(0,0,1);
setcolor(12);
outtextxy(20,430,'f=Ln(3*x+45*x-3)');
setcolor(14);
outtextxy(300,430,'cos(x^3)');
setcolor(9);
outtextxy(550,430,'t=sin(x)*sin(x)');
readln;closegraph;end.
Соседние файлы в папке LENA