Рассматриваем движение тела, брошенного под углом к горизонту без начального ускорения. Уравнения движения тела в осях координат известны из физики: Также известна формула для определения времени движения тела до его падения (т.е. возвращения на исходную высоту, которая совпадает с осью X): Считаем, что в начальных условиях задается количество точек, в которых нужно найти значения пути пройденного в осях координат.
uses Crt; const g=9.81; pi=3.14; var alpha,ar,v0,t,x,y,tmax,ht,v0x,v0y:real; n:integer; begin ClrScr; Write('Vvedite alpha, v0: '); Read(alpha,v0); Write('Chislo tochek= '); Read(n); ar:=pi*alpha/180; v0x:=v0*cos(ar); v0y:=v0*sin(ar); tmax:=2*v0*sin(ar)/g; ht:=tmax/n; t:=ht; while t<=tmax do begin x:=v0x*t; y:=v0y*t-g*sqr(t)/2; Writeln('t=',t:6:3,' x=',x:8:3,' y=',y:8:3); t:=t+ht end; ReadKey end.
Также известна формула для определения времени движения тела до его падения (т.е. возвращения на исходную высоту, которая совпадает с осью X):
Считаем, что в начальных условиях задается количество точек, в которых нужно найти значения пути пройденного в осях координат.
uses Crt;
const
g=9.81;
pi=3.14;
var
alpha,ar,v0,t,x,y,tmax,ht,v0x,v0y:real;
n:integer;
begin
ClrScr;
Write('Vvedite alpha, v0: ');
Read(alpha,v0);
Write('Chislo tochek= ');
Read(n);
ar:=pi*alpha/180;
v0x:=v0*cos(ar);
v0y:=v0*sin(ar);
tmax:=2*v0*sin(ar)/g;
ht:=tmax/n;
t:=ht;
while t<=tmax do
begin
x:=v0x*t; y:=v0y*t-g*sqr(t)/2;
Writeln('t=',t:6:3,' x=',x:8:3,' y=',y:8:3);
t:=t+ht
end;
ReadKey
end.
Тестовое решение:
Vvedite alpha, v0: 45 126.4
Chislo tochek= 10
t= 1.821 x= 162.864 y= 146.461
t= 3.643 x= 325.728 y= 260.375
t= 5.464 x= 488.592 y= 341.742
t= 7.286 x= 651.456 y= 390.562
t= 9.107 x= 814.320 y= 406.836
t=10.929 x= 977.184 y= 390.562
t=12.750 x=1140.048 y= 341.742
t=14.572 x=1302.912 y= 260.375
t=16.393 x=1465.776 y= 146.461
t=18.215 x=1628.640 y= 0.000