Program Wykresy_skalowane;
{$N+}
uses Graph;
var karta,tryb:integer;
n,xSiatki,ySiatki,j,xp,yp,skala:longInt;
x,y,x0,y0:extended;
xS,yS:string;
function f(x:real):real;
begin
f:=1/4*x*x+x-6;
end;
begin
karta:=detect; initGraph(karta,tryb,'');
skala:=2;
xSiatki:=20; ySiatki:=20;
x0:=0; y0:=f(x0);
j:=40*skala; xp:=round(319-x0*j); yp:=round(240+y0*j);
setColor(darkGray); rectangle(0,0,639,479);
for n:=-320 div xSiatki to 320 div xSiatki do
line(320+n*xSiatki,0,320+n*xSiatki,479);
for n:=-240 div xSiatki to 240 div xSiatki do
line(0,240+n*ySiatki,639,240+n*ySiatki);
setcolor(white);
line(0,yp,639,yp); line(630,yp-5,639,yp);
line(630,yp+5,639,yp); outtextxy(630,yp+5,'X');
line(xp,0,xp,479); line(xp-5,9,xp,0);
line(xp,0,xp+5,9); outtextxy(xp+10,18,'Y');
for n:=0 div j to 640 div j do
line(xp mod j+n*j,yp-2,xp mod j+n*j,yp+2);
for n:=0 div j to 480 div j do
line(xp-2,yp mod j+n*j,xp+2,yp mod j+n*j);
setColor(white);
str(-320/j+x0:2:4,xS); outTextXY(5,243,xS);
str(320/j+x0:2:4,xS);
outTextXY(625-8*length(xS),243,xS);
str(-240/j+y0:2:4,yS); outTextXY(332,472,yS);
str(240/j+y0:2:4,yS); outTextXY(332,2,yS);
fillEllipse(319,240,2,2);
str(x0:1:4,xS);str(y0:1:4,yS);
outTextXY(322,243,'A ('+xS+', '+yS+')');
x:=-320/j+x0;
repeat
x:=x+1/j;
y:=-f(x)*j+yp;
if (y>=0) and (y<480) then
putPixel(round(x*j+xp),round(y),lightBlue);
until x>320/j+x0;
readln; closeGraph;
end.
|
 |