Вопрос задан 31.05.2026 в 14:31. Предмет Информатика. Спрашивает Лапшин Александр.

Создайте программу на языке Pascal для решения задачи о полёте тела, брошенного под углом к горизонту.

Перейти к ответам

Ответы на вопрос

Отвечает Еремейчик Вячеслава.

Пример программы: она считает время полёта, дальность, максимальную высоту и выводит координаты тела через заданный шаг времени.

Формулы:
\( x = v_0 \cos \alpha \cdot t \)
\( y = h_0 + v_0 \sin \alpha \cdot t - \frac{gt^2}{2} \)

program ProjectileMotion;
uses Math;

var
v0, alphaDeg, alphaRad, h0, g, dt: real;
vx, vy, t, tFlight, x, y, d: real;

begin
g := 9.8;

writeln('Введите начальную скорость v0:');
readln(v0);

writeln('Введите угол alpha в градусах:');
readln(alphaDeg);

writeln('Введите начальную высоту h0:');
readln(h0);

writeln('Введите шаг времени dt:');
readln(dt);

alphaRad := alphaDeg * Pi / 180;
vx := v0 * cos(alphaRad);
vy := v0 * sin(alphaRad);

tFlight := (vy + sqrt(sqr(vy) + 2 * g * h0)) / g;
d := vx * tFlight;

writeln('Время полета: ', tFlight:0:2);
writeln('Дальность полета: ', d:0:2);
writeln('Максимальная высота: ', h0 + sqr(vy) / (2 * g):0:2);

writeln('Координаты тела:');
t := 0;
while t <= tFlight do
begin
x := vx * t;
y := h0 + vy * t - g * sqr(t) / 2;
if y < 0 then y := 0;
writeln('t=', t:0:2, ' x=', x:0:2, ' y=', y:0:2);
t := t + dt;
end;
end.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Информатика 21.05.2026 10:15 7 Гафаров Александр
Задать вопрос