Рассматриваем движение тела, брошенного под углом к горизонту без начального ускорения. Уравнения движения тела в осях координат известны из физики: Также известна формула для определения времени движения тела до его падения (т.е. возвращения на исходную высоту, которая совпадает с осью 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.
var a: array[1..nn] of integer; m, n, max, min, i, kn, kz, kp, kt, nmax, nmin, t: integer;
begin Write('Задайте количество элементов в массиве (1-50): '); Readln(n); Write('Введите значение для поиска: '); Readln(t); Writeln('Введите элементы массива'); max := -32768; min := 32767; kn := 0; kz := 0; kp := 0; kt := 0; for i := 1 to n do begin Read(m); if max < m then begin max := m; nmax := i end else if min > m then begin min := m; nmin := i end; if m < 0 then Inc(kn) else if m = 0 then Inc(kz) else Inc(kp); if m = t then Inc(kt); a[i] := m end; m := a[nmax]; a[nmax] := a[nmin]; a[nmin] := m; Writeln('Результирующий массив'); for i := 1 to n do Write(a[i], ' '); Writeln; Writeln('Количество элементов, равных ', t, ': ', kt); Writeln('Количество отрицательных элементов равно ', kn); Writeln('Количество нулевых элементов равно ', kz); Writeln('Количество положительных элементов равно ', kp) end.
Тестовое решение: Задайте количество элементов в массиве (1-50): 13 Введите значение для поиска: 7 Введите элементы массива 15 -6 11 0 7 0 18 -7 -3 -4 7 0 12 Результирующий массив 15 -6 11 0 7 0 -7 18 -3 -4 7 0 12 Количество элементов, равных 7: 2 Количество отрицательных элементов равно 4 Количество нулевых элементов равно 3 Количество положительных элементов равно 6
Также известна формула для определения времени движения тела до его падения (т.е. возвращения на исходную высоту, которая совпадает с осью 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