Eugeniusz Jakubas
programy źródłowe w Pascalu

Stąd można pobrać teksty źródłowe poniższych 57 programów w Pascalu pr-pascal.zip - 34 kB

48. Wykresy skalowane

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.
wykresy.jpg (92520 bytes)