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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 157, средняя оценка - 4.99
Stakhoff
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 32
#1

ругается на M_PI - C++

22.02.2011, 14:25. Просмотров 23725. Ответов 11
Метки нет (Все метки)

Вот программка из видео-урока. Но у меня в Visual выдаёт ошибку: error C2065: 'M_PI' : undeclared identifier.
Объясните, в чём туплю

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <cmath>
 
using namespace std;
 
float dist(float v, float a)
{
  return v * v * sin(2 * a * M_PI / 180) / 9.81;
}
 
int main()
{
  float v;
  float a;
  cout << "Введите скорость, м/с: ";
  cin >> v;
  float d;
  float max_d;
  float max_a;
  max_d = 0;
  for (float a = 0; a < 90; a += 1)
  {
    d = dist(v, a);
    if (max_d < d)
    {
      max_d = d;
      max_a = a;
    }
  }
  cout << "Максимальное расстояние, м: " << max_d << endl;
  cout << "Максимальный угол, градусах: " << max_a << endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2011, 14:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ругается на M_PI (C++):

Ругается на if (a>M_PI) - C++
#include &lt;math.h&gt; есть.

Ошибка: M_PI: необъявленный идентификатор - C++
#include &lt;iostream&gt; #include &lt;locale&gt; #include &lt;math.h&gt; #define _USE_MATH_DEFINES using namespace std; int main() { ...

M_PI как его объявить? - C++
Вот код программы: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cmath&gt; int _tmain(int argc, _TCHAR* argv) { double x =...

M_PI + cmath в Visual Studio - C++
Всем привет. Почему в VS (проверено на 2010 и 2012) при использовании cmath нельзя достучаться до константы M_PI, а при использовании...

Ругается на If - C++
#include&lt;iostream&gt; using std::cin; using std::cout; using std::endl; int main() { cout&lt;&lt;&quot;Введите число:\n&quot;; int age; ...

Ругается на gets() - C++
Добрый вечер, рассматривал функцию gets() Но при компиляции программы выдаёт ошибку warning C4996: 'gets': This function or variable...

11
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
22.02.2011, 14:30 #2
Попробуй дописать такую строчку, после инклюдов
C++
1
#define _USE_MATH_DEFINES
2
Stakhoff
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 32
22.02.2011, 14:32  [ТС] #3
не канает
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
22.02.2011, 14:36 #4
Stakhoff, попробуй дописать это до #include <cmath>
1
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
22.02.2011, 14:36 #5
Stakhoff, Тогда просто обяви M_PI как константу
C++
1
const double M_PI = 3.14;
1
Stakhoff
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 32
22.02.2011, 14:50  [ТС] #6
Спасибо, ребята, пошло! А как у того чела без этого работает?
Вот урок
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
22.02.2011, 14:55 #7
Stakhoff, Вообще-то макрос M_PI это заморочки компилятора GNU GCC, а так как у него именно этот компилятор - все работает нормально.
1
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
22.02.2011, 15:26 #8
asics, и как вы думаете, такой точности достаточно?
1
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
22.02.2011, 15:35 #9
silent_1991, Нет.Но что мешает ТС`у просто добавить этой точности ?
1
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
22.02.2011, 16:00 #10
asics, достаточно точное значение pi можно получить, используя тригонометрические функции
1
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
22.02.2011, 16:44 #11
Nameless One, Да я в курсе
C
1
atan(-1.0)
Добавлено через 22 минуты
Всмисле
C
1
acos(-1.0)
1
Dragokas
Эксперт WindowsАвтор FAQ
16079 / 6897 / 829
Регистрация: 25.12.2011
Сообщений: 10,667
Записей в блоге: 16
29.05.2013, 20:58 #12
Для Visual Studio нужно вот так:

C++
1
2
3
4
5
6
7
#define _USE_MATH_DEFINES
#include <math.h> // число pi
 
void main()
{
    printf("%f", M_PI);
}
0
29.05.2013, 20:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2013, 20:58
Привет! Вот еще темы с ответами:

Ругается компилятор - C++
Компилирую программу: // Proba2.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;vector&gt;...

Ругается на функцию - C++
В чём тут ошибка? #include &lt;iostream&gt; #include &lt;string&gt; const int n=3;

Ругается в 3 местах - C++
Помогите понять почему он ругается на в указанных местах? main.cpp #include &quot;Student.h&quot; int main() { setlocale(LC_ALL,...

Ругается на шаблон - C++
Не пойму , но компилятор ругается на эту функцию : bool contains(const &amp;T); И пишет что int не поддерживается по умолчанию. Вот...


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

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

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