На заметку
Результатом выполнения функция frac() является дробная часть ее аргумента. Таким образом, результат команды frac(t/(T+tO)) — остаток от вычитания из t целого числа полупериодов, но только в отношении к интервалу времени (T+tO). Чтобы получить время в абсолютных единицах, данное число следует умножить на (T+tO).
Если же в интервале времени t вмещается нечетное число полупериодов (j=l), используем второе правило вычисления высоты и скорости шарика и [присваиваем локальному параметру ТТ значение (T+tO) * (1-fгас (t/ (T+tO))).
После этого достаточно вычислить положение и скорость шарика в момент ТТ, который заведомо не превышает интервал (T+tO). I Далее, если ТТ не превышает времени свободного падения шарика (to), рследует использовать формулу для свободного падения тела с высоты Н без начальной скорости. В противном случае зависимость высоты шарика от времени дается зависимостью Y(). Однако поскольку в послед-ией зависимости предполагается, что время отсчитывается от момента парения шарика на пружину, аргументом следует указать параметр (TT-tO), ито и сделано.
Принципиально процедура L(), позволяющая вычислить длину пружины, вт описанной только что процедуры h() отличается мало. Локальные переменные и их значения абсолютно такие же, как и в предыдущем случае. От-иичие только в последнем условном операторе.
Если шарик еще не долетел до пружины, последняя находится в недефор-рированном состоянии и ее длина равна 1. После того как шарик столкнулся пружиной, она начинает сжиматься. Высота шарика определяется зависимостью Y(TT-tO), и эта высота меньше нуля (поскольку шарик находится нисе уровня верхнего конца недеформированной пружины). Поэтому длина Пружины изменяется на такую же величину и равна l+Y(TT,-tO). Осталось задать зависимость скорости шарика от времени. Эта зависимость определяется процедурой VI ().