Создайте программу на языке 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.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

