![]() |
Eugeniusz Jakubas |
Stąd można pobrać teksty źródłowe poniższych 57 programów w Pascalu pr-pascal.zip - 34 kB
32. Sieczna
Program Sieczna;
uses Graph;
var karta,tryb,n,siatka,j,xA,yA,xB,yB:integer;
x,y,x1,x2,u:real;
function f(x:real):real;
begin
f:=1/4*x*x+x-6;
end;
begin
karta:=detect; initGraph(karta,tryb,'');
j:=20; siatka:=20;
setColor(darkGray); rectangle(0,0,639,479);
for n:=-320 div siatka to 320 div siatka do
begin
line(320+n*siatka,0,320+n*siatka,479);
line(0,240+n*siatka,639,240+n*siatka);
end;
setcolor(white);
line(0,240,639,240); line(630,235,639,240); line(630,245,639,240);
outtextxy(630,250,'X');
line(320,0,320,479); line(315,9,320,0); line(320,0,325,9);
outtextxy(330,8,'Y');
for n:=-320 div j to 320 div j do
begin
line(320+n*j,238,320+n*j,242);
line(318,240+n*j,322,240+n*j);
end;
x:=-320/j;
repeat
x:=x+1/j;
putPixel(round(x*j+320),round(240-f(x)*j),yellow);
until x>320/j;
x2:=6;
x1:=-1;
u:=(f(x2)-f(x1))/(x2-x1); write('u = ',u:5:4);
setColor(lightRed);
xA:=round(x1*j+320); yA:=round(240-f(x1)*j); fillEllipse(xA,yA,3,3);
xB:=round(x2*j+320); yB:=round(240-f(x2)*j); fillEllipse(xB,yB,3,3);
line(0,round(u*xA+yA),639,round(u*(xA-639)+yA));
line(xB,yB,xB,yA); line(xB,yA,xA,yA);
readln; closegraph;
end.
|
![]() |