Решение задачи Д-44 с Меньшиков

Без пояснения   Просмотров: 30


При решении задач баллистики следует учитывать сопротивление воздуха. Пусть сила сопротивления воздуха пропорциональна квадрату модуля скорости движения снаряда и направлена противоположно скорости. Считая коэффициент пропорциональности силы сопротивления воздуха квадрату скорости постоянной величиной, рассчитать дальность полёта снаряда (с точностью до 10 м) при стрельбе из 85-миллиметровой пушки Д-44 под заданным углом к горизонту, если масса снаряда равна 9.6 кг, а начальная скорость - 800 м/с. Известно также, что при стрельбе под углом 45 градусов дальность стрельбы составляет 15 650 м. Ускорение свободного падения считать равным 9.8 м/с2.

Ограничения: угол от 5 до 85 градусов.

Код

#include <iostream>
#include <cstdio>
#include <cmath>
 
using namespace std;
const double k = 0.0008137;
const double V0 = 800;
const double m = 9.6;
const double g = 9.8;
const double pi = 2*acos(0.0);
 
 
double alpha;
void input()
{
    cin>>alpha;
    alpha = pi * alpha / 180.0;
}
void solve()
{
    double dt = 0.0001;
    double Vxt = V0 * cos(alpha);
    double Vyt = V0 * sin(alpha);
    double Xt = Vxt * dt;
    double Yt = Vyt * dt;
    double Vt,Xnext,Ynext,Axt,Ayt,Frxt,Fryt,Frt;
    do
    {
        Vt = sqrt(Vxt*Vxt + Vyt*Vyt);
        Xnext = Xt + Vxt*dt;
        Ynext = Yt + Vyt*dt;
 
        Frt = k * Vt * Vt;
        Frxt = - Frt * Vxt / Vt;
        Fryt = - Frt * Vyt / Vt;
 
        Axt = Frxt / m;
        Ayt = Fryt / m - g;
 
        Vxt = Vxt + Axt * dt;
        Vyt = Vyt + Ayt * dt;
 
        Xt = Xnext;
        Yt = Ynext;
    }while (Yt>=0);
 
    printf("%0.0f",Xt);
}
int main()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
 
    input();
    solve();
    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться