Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 157, средняя оценка - 4.99
Stakhoff
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 32
22.02.2011, 14:25     ругается на M_PI #1
Вот программка из видео-урока. Но у меня в 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2011, 14:25     ругается на M_PI
Посмотрите здесь:

M_PI как его объявить? C++
C++ Ругается на If
C++ VS ругается на ошибки
Ругается на if (a>M_PI) C++
C++ Компилятор не ругается
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.02.2011, 14:30     ругается на M_PI #2
Попробуй дописать такую строчку, после инклюдов
C++
1
#define _USE_MATH_DEFINES
Stakhoff
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 32
22.02.2011, 14:32  [ТС]     ругается на M_PI #3
не канает
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
22.02.2011, 14:36     ругается на M_PI #4
Stakhoff, попробуй дописать это до #include <cmath>
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.02.2011, 14:36     ругается на M_PI #5
Stakhoff, Тогда просто обяви M_PI как константу
C++
1
const double M_PI = 3.14;
Stakhoff
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 32
22.02.2011, 14:50  [ТС]     ругается на M_PI #6
Спасибо, ребята, пошло! А как у того чела без этого работает?
Вот урок
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.02.2011, 14:55     ругается на M_PI #7
Stakhoff, Вообще-то макрос M_PI это заморочки компилятора GNU GCC, а так как у него именно этот компилятор - все работает нормально.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
22.02.2011, 15:26     ругается на M_PI #8
asics, и как вы думаете, такой точности достаточно?
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.02.2011, 15:35     ругается на M_PI #9
silent_1991, Нет.Но что мешает ТС`у просто добавить этой точности ?
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
22.02.2011, 16:00     ругается на M_PI #10
asics, достаточно точное значение pi можно получить, используя тригонометрические функции
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.02.2011, 16:44     ругается на M_PI #11
Nameless One, Да я в курсе
C
1
atan(-1.0)
Добавлено через 22 минуты
Всмисле
C
1
acos(-1.0)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2013, 20:58     ругается на M_PI
Еще ссылки по теме:

M_PI + cmath в Visual Studio C++
Ругается на gets() C++
Почему ругается на else? C++

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

Или воспользуйтесь поиском по форуму:
Dragokas
Автор FAQ
 Аватар для Dragokas
14523 / 6350 / 785
Регистрация: 25.12.2011
Сообщений: 9,882
Записей в блоге: 14
29.05.2013, 20:58     ругается на M_PI #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);
}
Yandex
Объявления
29.05.2013, 20:58     ругается на M_PI
Ответ Создать тему
Опции темы

Текущее время: 20:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru