"justify"> # include
# include
# include namespace std; main ()
{v [10000];// масив швидкостей шарікаy [10000];// масив координат шарікаcoord = 0;// координата платформиvel = 0;// швидкість платформиa;// прискорення шарікаg;// прискорення вільного паденіяT;// максимальне времяt = 0;// поточне времяdt = 0;// проміжки временіh;// висота, з якої падає шарікerr;// погрешностьerr2; N;// hmax;// a1;// прискорення платформиA ;// амплітуда коливань платформиw;// циклічна частота платформиq;// початкова фазаk;// коефіцієнт відновлення
while (t <= T)// до тих пір, поки не закінчиться заданий час, виконується цикл
{[1] = v [0] + a * dt; [1] = y [0] + v [0] * dt; = vel + a1 * dt; = coord + vel * dt; (fabs (y [0]-coord) <= err && v [0] <0 && vel> = 0)// якщо удар
{[1] =-v [0] + vel;
} (fabs (y [0]-coord) <= err2 && v [0]> 0 && vel> 0)// якщо удар
{[1] = v [0] + vel;
} [0] = v [1]; [0] = y [1]; = t + dt;
// запис у файл (print, "% f t% f n", t, y [1]); (phase, "% f t% f n" , y [1], v [1]);
}
}
.2 непружних удар
# include
# include
# include
# include
# include
# include namespace std; main ()
{v [10000];// масив швидкостей шарікаy [10000];// масив координат шарікаcoord = 0;// координата платформиvel = 0;// швидкість платформиa;// прискорення шарікаg;// прискорення вільного паденіяT;// максимальне времяt = 0;// поточне времяdt = 0;// проміжки временіh;// висота, з якої падає шарікerr;// погрешностьerr2; N;// hmax;// a1;// прискорення платформиA ;// амплітуда коливань платформиw;// циклічна частота платформиq;// початкова фазаk;// коефіцієнт відновлення
int variant; = 9.81; = 10; = 0.001; = 0.04; = 0.02; = 10; [0] = 0; [0] = h;
a =-g;
// значення коефіцієнта відновлення для різних матеріалів = 0.88;// матеріал: скло = 2; = 0; = 0;
// створюємо і відкриваємо файли * print;
while (t <= T)
// до тих пір, поки не закінчиться заданий час
// виконується цикл
{
v [1] = v [0] + a * dt;
y [1] = y [0] + v [0] * dt; = vel + a1 * dt; = coord + vel * dt; ((fabs (y [0]-coord) <= err) && (v [0] <0))// якщо удар
{(-v [0]
{[1] = vel * (1 + sqrt (k)) + v [0] * sqrt (k);