IMPORT Log, Math, Draw, Forms, Plot;
IF Draw.mouseY < 300 THEN
bq := 300. - FLT(Draw.mouseY);
Draw.SetBackground(Draw.white);
bv := (bv - 9.8 * 0.05) * visk.value;
FOR i := LEN(t) - 1 TO 1 BY -1 DO t[i] := t[i-1] END;
IF bq < 10.0 THEN bv := - bv END;
Draw.Ellipse(FLT(x), 300. - bq, 20., 20.);
Draw.Linei(0, 300, Draw.width, 300);
Plot.Y(axes, t, Draw.red, 2);
visk := Forms.NewSlider(10, 330, 350, 50, "коэффициент рассеяния энергии", 0.9, 1.0, 0.001, NIL);
Forms.SetReal(visk, 0.999);
axes := Plot.NewAxes(0, 400, 350, 300);
axes.xtitle := "Вермя, с";
axes.ytitle := "Скорость тела";
FOR i := 0 TO LEN(t) - 1 DO t[i] := 0.0 END;
Draw.SetSetupProc(Setup);
Draw.SetPressedProc(Press);
Draw.SetDrawProc(Update);