Uses Graph,CRT,MytPU;

Const
 v0 = 10;            {Начальная скорость}
 al = 3.14*270/180;  {Начальный угол}
 up = 0.8;           {Упругость шара}
 BallSize = 7;
Var
 x,y,vx,vy  : real;
 t          : longint;

Procedure WriteBall(x,y:real);
Begin
  FillEllipse(Round(x),Round(470-Y),BallSize,BallSize);
End;

Procedure BallFly(v0,al0,x0,y0:real);
Var x,y : real;
Begin
  t := 1;
  repeat
    vx := v0*cos(al0);
    vy := v0*sin(al0);
    x := Vx*(t/100)+x0;
    Y := Vy*(t/100) - 5*sqr((t/100))+y0;
    WriteBall(x,y);
    Delay(10);
    inc(t);
    If y < 0 then
    begin
      if not Keypressed then BallFly(v0*up,abs(ArcTan(abs(Vy/Vx))),x,y);
      exit;
    end;
  Until (t = 2147483647) or (x > 640) or (KeyPressed);
End;


Begin
  InitVGA;
  Randomize;
  SetColor(Blue);
  SetFillStyle(SolidFill,Green);
  SetWriteMode(XORPut);
  BallFly(v0,al,320,240);
  ReadKey;
  CloseGraph;
End.