Заранее благодарна

uses
Crt, Graph;
const
G = 9.8;
n = 2;
function getint(x, y: integer; s: string): integer;
var
st: string;
err, a: integer;
ch: char;
begin
setcolor(white);
outtextxy(x, y, s);
st := '';
repeat
ch := readkey;
if ch in [#8, '0'..'9'] then
begin
setcolor(black);
outtextxy(x + textwidth(s), y, st);
setcolor(white);
if ch = #8 then
begin
if st <> '' then delete(st, length(st), 1)
end
else
st := st + ch;
outtextxy(x + textwidth(s), y, st);
end
until ch = #13;
val(st, a, err);
getint := a
end;
var
grDriver, grMode, ErrCode: integer;
v0, a, x, y: real;
t: real;
i: integer;
currcolor, px, py: integer;
begin
grDriver := Detect;
initgraph( grDriver, grMode, '' );
ErrCode := GraphResult;
if ErrCode <> grOk then
begin
writeln('Graphics error:', grapherrormsg(ErrCode));
halt(100)
end;
currcolor := 0;
while true do
begin
setviewport(0, 0, getmaxx, 40, false);
clearviewport;
setviewport(0, 0, getmaxx, getmaxy, false);
v0 := getint(5, 5, 'enter Vo ');
a := getint(5, 20, 'enter A ');
if v0 = 0 then break;
inc(currcolor);
currcolor := (currcolor mod 10) + 1;
t := 0;
repeat
x := v0 * cos(a / (180/Pi)) * t;
y := v0 * sin(a / (180/Pi)) * t - (G * sqr(t)/2);
px := trunc(x); py := trunc(y);
putpixel(px, (getmaxy div 2) - py, currcolor);
if (t > 0.01) and (y <= 0) then break;
t := t + 0.01;
until false;
end;
closegraph;
end.