Program padak;
uses crt,graph;
var     Gd,Gm: integer;   // promenne grafickeho rozhrani
        a,v,x,t,dt:real;

begin
v:=0;
t:=0;
dt:=0.01;
Gd:=Detect;InitGraph(Gd,Gm,' ');   // nastartujeme grafiku
OutTextXY(210,30,'Prubeh rychlosti a zrychleni');      // Vypsani nadpisu
OutTextXY(190,45,'Numericke reseni pohybove rovnice');
OutTextXY(270,60,'a = g - k*v^2');

line(10,400,10,100);	// souradne osy
line(10,400,620,400);

setlinestyle(3,1,1);
line(10,155,620,155);

OutTextXY(100,160,'Mezni rychlost');

setlinestyle(0,1,1);       // carkovana osa mezni rychlosti



rectangle(20,430,40,450);    // ctverecek zrychleni
setfillstyle(1,6);
floodfill(30,440,15);
OutTextXY(50,440,'Zrychleni');

rectangle(180,430,200,450);   // ctverecek rychlost
setfillstyle(1,5);
floodfill(190,440,15);
OutTextXY(210,440,'Rychlost');

repeat        // vypocet
t:=t+dt;
a:=0.0041*v*v-9.81;
v:=v+a*dt;

delay(4);    // zpozedni 4 ms
putpixel(trunc(10+t*40),trunc(400+a*20),6); // vykresleni grafu 
putpixel(trunc(10+t*40),trunc(400+v*5),5);
until ((keypressed) or (t>15));   // podminka ukonceni cyklu

readkey;

closegraph; // uzavreni grafiky
end.