Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.85
isaak
103 / 40 / 9
Регистрация: 17.10.2010
Сообщений: 670
#1

Вычислить угол под которым брошено тело - C++

23.08.2012, 21:29. Просмотров 2832. Ответов 22
Метки нет (Все метки)

Всем доброго время суток. Написать программу, в которой по известной начальной скорости V и времени полета T определяется угол http://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha под которым тело брошено по отношению к горизонту (воспользоваться следующим соотношением
http://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha =\arcsin(\frac{g*T}{2*V})). Вот сама программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<cmath>
#include<iostream>
using namespace std;
int main()
{
setlocale( LC_ALL,"Russian" );
 const  double PI = 3.1415;
 const  double g = 9.8;
 double V, T, result, alpha;
   cout<<" Введите скорость:  ";
   cin>>V;
cout<<" Введите время:  ";
   cin>>T;
result = (g*T)/(2*V);
 ( result < -1  ||  result  > 1 )? (cout<<" Не верное значение:  "<<endl, exit(0)):cout<<" Такого угла не существует!  ";
  alpha = asin (result) * 180.0 / PI;
   cout<<"Значение угла равно: "<<alpha;
   system("pause");
   return 0;
}
Но она работает не правильно. Как сделать при значениях отношения http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{g*T}{2*V} меньших -1 или больших 1 выскакивало сообщение: " Не верное значение! Такого угла не существует! Введите верные значения " и только после значений удовлетворяющих данному условию, выводилось значение угла в градусах программа завершалась бы. У меня работает с точностью наоборот. При значениях V=98 и T=10 значения отношение получается 0.5 что соответствует 30 градусам у меня выскакивает ошибка внизу. Не знаю почему???? Помогите пожалуйста???? Заранее огромное спасибо за помощь.
0
Миниатюры
Вычислить угол под которым брошено тело  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2012, 21:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить угол под которым брошено тело (C++):

По начальной скорости и времени полета тела определить угол, под которым тело брошено по отношению к горизонту - C++
Начали выполнять работы по программированию, а именно Создайте программу, в которой по известной начальной скорости V и времени полета тела...

Задача по физике. С некоторой высоты под углом к горизонту брошено тело. - C++
С некоторой высоты h_0 под углом к горизонту \alpha со скоростью U брошено тело. Вычислить,какое расстояние по горизонтали оно пролетит...

Тело падает под действием силы тяжести - C++
Тело падает под действием силы тяжести с нулевой начальной скорости. Движение описывается следующей системой дифференциальных уравнени ...

Вывести полное имя программы, под которым она была запущена. - C++
Здравствуйте! Пожалуйста, помогите с написанием вот такой программы: Вывести полное имя программы, под которым она была запущена....

Вычислить силы, действующие на тело - C++
Нужна помощь 1) На тело действуют две силы, заданные векторами А и В найти а)величину этих сил, б)направление(угол относительно оси...

Вычислить угол между прямыми - C++
Заданы уравнения двух пересекающихся прямых на плоскости: y1=k1x+b1, y2=k2x+b2. Напишите программу, вычисляющую угол между ними в градусах...

22
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
25.08.2012, 17:58 #16
Господи ты боже мой. acos возвращает угол в радианах. В диапазоне [0; π]. asin то же самое, но в [–π/2; π/2].

Один радиан — это 180/π градусов. Радианы надо умножить на 180/π, чтобы получить градусы.
0
-=ЮрА=-
Заблокирован
Автор FAQ
25.08.2012, 18:51 #17
Цитата Сообщение от isaak Посмотреть сообщение
или acos(-1) = PI = 3.1416?
- math.h аркосинус возращает радианы
1
isaak
103 / 40 / 9
Регистрация: 17.10.2010
Сообщений: 670
25.08.2012, 22:57  [ТС] #18
-=ЮрА=- насколько я понял наиболее верная формула по которой считает встроенная библиотека math.h есть:
ГРАДУСЫ = РАДИАНЫ*(180/acos(-1))= РАДИАНЫ*(180/PI) = РАДИАНЫ*(180/3.1416);
Да верно????
0
ValeryS
Модератор
6709 / 5118 / 482
Регистрация: 14.02.2011
Сообщений: 17,203
25.08.2012, 23:31 #19
Цитата Сообщение от isaak Посмотреть сообщение
asin(1.0) равен Пи/2 = 90 градусов
нет он равен asin(1.0) равен Пи/2 =1,57 радиан
в одном градусе 0,01745329222222222222222222222222 радиан
в одном радиане 57,295780490442968321226628812406 градусов
можешь и при помоши этих чисел переводить
так что твой вывод
Цитата Сообщение от isaak Посмотреть сообщение
90 градусов 90 деленное на 90 это 1;
неверный

Не по теме:

а есть еще деграды
там прямой угол 100 градусов



Добавлено через 1 минуту
Цитата Сообщение от isaak Посмотреть сообщение
насколько я понял наиболее верная формула по которой считает встроенная библиотека math.h есть:
ГРАДУСЫ = РАДИАНЫ*(180/acos(-1))= РАДИАНЫ*(180/PI) = РАДИАНЫ*(180/3.1416);
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
math.h аркосинус возращает радианы
math.h не работает с градусами
перевод ручками
0
isaak
103 / 40 / 9
Регистрация: 17.10.2010
Сообщений: 670
25.08.2012, 23:43  [ТС] #20
ValeryS объясни пожалуйста же как тогда здесь math.h вычисляет значение в градусах:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* acos example */
#include <stdio.h>
#include <math.h>
 
#define PI 3.14159265
 
int main ()
{
  double param, result;
  param = 0.5;
  result = acos (param) * 180.0 / PI;
  printf ("The arc cosine of %lf is %lf degrees.\n", param, result );
  return 0;
}
http://www.cplusplus.com/reference/clibrary/cmath/acos/
0
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
25.08.2012, 23:47 #21
Можно я за него? acos возвращает в радианах. Но это значение тут же переводится в градусы (* 180.0 / PI). Перевод, естессно, делает не math.h. И по приведённой вами ссылке чёрным по белому написано: «Return Value: Principal arc cosine of x, in the interval [0,pi] radians».
0
ValeryS
Модератор
6709 / 5118 / 482
Регистрация: 14.02.2011
Сообщений: 17,203
25.08.2012, 23:50 #22
Цитата Сообщение от isaak Посмотреть сообщение
бъясни пожалуйста же как тогда здесь math.h вычисляет значение в градусах:
а вот эта строчка ни о чем не говорит?
Цитата Сообщение от isaak Посмотреть сообщение
result = acos (param) * 180.0 / PI;
ручками приводят
Цитата Сообщение от isaak Посмотреть сообщение
180.0 / PI
можешь сделать так
C++
1
result = acos (param) * 57,29578049;
Добавлено через 1 минуту
57,29578049; это
Цитата Сообщение от ValeryS Посмотреть сообщение
в одном радиане 57,295780490442968321226628812406 градусов
0
-=ЮрА=-
Заблокирован
Автор FAQ
25.08.2012, 23:51 #23
Цитата Сообщение от isaak Посмотреть сообщение
-=ЮрА=- насколько я понял наиболее верная формула по которой считает встроенная библиотека math.h есть:
ГРАДУСЫ = РАДИАНЫ*(180/acos(-1))= РАДИАНЫ*(180/PI) = РАДИАНЫ*(180/3.1416);
Да верно????
- да абсолютно, но я предпочитаю asin(1.0) который имеет значение Пи/2 (просто мне так проще).

Цитата Сообщение от isaak Посмотреть сообщение
acos (param)
- это возврат радиан на основе значение param (по памяти косинус 0,5 это Пи/3)

Цитата Сообщение от isaak Посмотреть сообщение
* 180.0 / PI
- это перевод в градусы
Имеем в итоге Пи/3*(180 / Пи) = (1/3)*180 = 60 градусов
0
25.08.2012, 23:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2012, 23:51
Привет! Вот еще темы с ответами:

Лежат ли точки на одной прямой и вычислить угол - C++
Написал программу, но не пойму в чём ошибка( #include &lt;iostream.h&gt; #include &lt;math.h&gt; void main() {int x1, x2, x3; int y1, y2, y3;...

Нада вычислить угол если есть косинус этого угла - C++
Нада вычислить угол если есть косинус этого угла вот код: #include &lt;math.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; using...

Вычислить площадь четырехугольника, если угол между сторонами длиной X и Y - прямой - C++
Даны числа X,Y,Z,T - длины сторон четырехугольника. Вычислить его площадь, если угол между сторонами длиной X и Y - прямой.

Вычислить площадь четырехугольника, если его угол между сторонами длиной X и Y — прямой - C++
текст задачи: Даны числа X,Y,Z,T - длины сторон четырехугольника. Вычислить его площадь, если его угол между сторонами длиной X и Y -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru