БЕСПЛАТНОЕ РЕШЕНИЕ ЗАДАЧ

Движение брошенного тела в С++

Здесь приведен пример решения задачи о движении тела, брошенного под углом к горизонту. Но для решения применены приближенные методы: разностная схема для решения системы дифференциальных уравнений, которыми описывается движение тела. Будем решать систему дифференциальных уравнений, описывающую движение тела:

$$\ddot{x}=0, \ddot{y}=-g.$$
Результат представлен в следующей программе:
#include 
#include 
using namespace std;
int main(){
//Ускорение свободного падения и число pi:
const double g=9.8,pi=3.1415;
//Шаг дискретности по времени:
double dt=0.0001;
//Рабочие переменные:
double V,alpha,t,v,u,x=0,y=0;
int n=0;
//Ввод параметров задачи:
cout<<"Enter V = ";
cin>>V;
cout<<"Enter alpha = ";
cin>>alpha;
//Перевод градусов в радианы:
alpha=alpha*pi/180;
cout<<"Enter t = ";
cin>>t;
//Начальная скорость (проекции):
v=V*cos(alpha);
u=V*sin(alpha);
//Вычисление координат тела:
do{
 n++;
 y+=u*dt;
 x+=v*dt;
 u-=g*dt;
}while((y > 0)&&(n*dt < t));
//Вывод результатов с учетом конечности времени полета:
cout << "y = " << y <<" : ";
cout << (t < sqrt(2*V*sin(alpha)/g)?V*sin(alpha)*t-g*t*t/2:0) << endl;
cout << "x = " << x << " : ";
cout<<(t < sqrt(2*V*sin(alpha)/g)?V*cos(alpha)*t:V*V*sin(2*alpha)/g) << endl;
return 0;
}

Оставить комментарий

Вы должны быть авторизованы , чтобы оставить или оценить комментарий.

Онлайн всего: 5
Гостей: 5
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте