Доброе время суток вопрос к математикам, сабж найти максимальную дальность полета S тела имеем формулу S = V02 sin2α/g, (S - дальность, V02-скорость в квадрате, sin2a - угол, g - вес тела) т.к функция sin(числа) принимает в радианах, а не в градусах, пишу функцию: int a;//градус Код (Text): double GradusFun(double gradus) { double rad; double pi=3.14; rad=gradus*pi/180; return sin(rad);//return a;//возвращаем градусы } возврощает правильно. далее... вводим скорость допустим V0=3 ; // т.к в квадрате то получиться 9 вводим угол a=3 возратит синус a;// т.к GradusFun(double gradus) вводим вес тела g=3; Код (Text): a=GradusFun(a); result=pow(v2,2)*pow(a,2)/g; получаем 0.00820884; //Pow - Вычисляет значение числа х в степени у. double pow(double x, double y); //---------- вопросы: 1) result=pow(v2,2)*pow(a,2)/g; правильно ли я расчитал дальность полета? а именно возращает 0.00820884 2) g-вес тела или ускорение свободного падения? Дополнительная инфа : Движение тела, брошенного под углом к горизонту http://www.home-edu.ru/user/f/00000693/mehanika/par_12.htm
Clerk не мне нуно узнать всеголишь правильный расчет формулы при v0=3;g=3;a=3; вот по поводу воздуха, предпологаеться что есть пространство без силы трений и т.д просто формула - ответ. Clerk а вообще спс
GoldFinch иди учи своих детей че им надо делать, я и без тебя знаю свои слабые стороны, ты лучшеб о себе побеспокоился, выявил свои траблы?
not1 Вообще я против возрастной дискриминации, но в данном случае полностью согласен с GoldFinch. Итак, начнем. Уравнение движения, для тела, перемещающегося с ускорением: r=r0+V0*t+a*t^2/2 тут r0 - начальная координата, V0 - начальная скорость, a - ускорение, t - время. Тогда для тела, запущенного под углом к горизонту можно записать 2 уравнения: x=x0+v0x*t (по оси x тело движется без ускорения) y=y0+v0y*t-g*t^2/2 (по оси y тело движется с ускорением свободного падения, взятого со знаком минус, т.к. ось y направлена вверх, а ускорение - вниз) Тут x0, y0 - начальные координаты тела, v0x=v0*cos(a), v0y=v0*sin(a) - горизонтальная и вертикальная составляющие начальной скорости, t -время, g - ускорение свободного падения. a - угол, под которым запускают тело. Т.к. приняли, что тело запускается из точки с координатами (0, 0), то: x=v0*cos(a)*t y=v0*sin(a)*t-g*t^2/2 Когда тело приземлится, координата y у него примет значение 0, отсюда можно вычислить время движения тела: 0=v0*sin(a)*t-g*t^2/2 0=t*(v0*sin(a)-g*t/2) Корни уравнения: t=0 (не устраивает) и t=2*v0*sin(a)/g Подставляем выражение для времени полета в уравнение для координаты x: x=v0*cos(a)*2*v0*sin(a)/g Как известно, 2*sin(a)*cos(a)=sin(2*a), тогда: x=v0^2*sin(2*a)/g Как теперь видно, формула, приведенная на сайте для домашнего обучения, неправильная. Соответственно, зачаду Вы решаете неправильно. Это не угол, а синус угла (судя по материалу, на который Вы опирались, он еще и в квадрате). Посмею сделать заявление, что от массы(а не веса) тела, уравнение движения не зависит. Верное решение: result=v0*v0*sin((float)a*PI/90)/g; тут v0 - начальная скорость, a - угол в градусах, g - ускорение свободного падения.