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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.81
Виктор_Сен
33 / 26 / 1
Регистрация: 01.08.2011
Сообщений: 176
#1

Встроенные математические констатны - C++

08.08.2011, 21:21. Просмотров 4445. Ответов 11
Метки нет (Все метки)

Не подскажите, есть ли в си++ встроенные математические констатны "pi" и "e"?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2011, 21:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Встроенные математические констатны (C++):

встроенные константы в С++ (pi e) - C++
Подскажите, существуют ли в С++ встроенные константы. Например pi=3.14.... или e=2.71.... Если да, то как их вызвать. Если...

Встроенные функции - C++
Привет! Только недавно изучаю C++!Может кто-нибудь объяснить,пожалуйста,ценность встроенных функций и как вообще происходит компиляция...

Встроенные макросы - C++
Как заставить работать встроенные макросы? Не отображает! #include "stdafx.h" #include <iostream> using namespace std; int...

Встроенные функции - C++
Inline для встроенных функция надо писать и в прототипе и в определнии? Или в одном каком-то месте?

Встроенные циклы - C++
Доброго времени суток! Помогите разобрать или подскажите где прочитать про встроенные циклы. Что такое цикл я понял, но возник вопрос...

Встроенные функции в компилятор - C++
Здравствуйте уважаемые форумчане! В процессе изучения С++ столкнулся с такой проблемой!Занимаюсь на платформе C++ 6.0 и хотел бы знать есть...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
08.08.2011, 21:25 #2
math.h
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
/* Definitions of useful mathematical constants
 * M_E        - e
 * M_LOG2E    - log2(e)
 * M_LOG10E   - log10(e)
 * M_LN2      - ln(2)
 * M_LN10     - ln(10)
 * M_PI       - pi
 * M_PI_2     - pi/2
 * M_PI_4     - pi/4
 * M_1_PI     - 1/pi
 * M_2_PI     - 2/pi
 * M_2_SQRTPI - 2/sqrt(pi)
 * M_SQRT2    - sqrt(2)
 * M_SQRT1_2  - 1/sqrt(2)
 */
 
#define M_E        2.71828182845904523536
#define M_LOG2E    1.44269504088896340736
#define M_LOG10E   0.434294481903251827651
#define M_LN2      0.693147180559945309417
#define M_LN10     2.30258509299404568402
#define M_PI       3.14159265358979323846
#define M_PI_2     1.57079632679489661923
#define M_PI_4     0.785398163397448309616
#define M_1_PI     0.318309886183790671538
#define M_2_PI     0.636619772367581343076
#define M_2_SQRTPI 1.12837916709551257390
#define M_SQRT2    1.41421356237309504880
#define M_SQRT1_2  0.707106781186547524401
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
08.08.2011, 21:34 #3
Если речь о C++ тогда лучше так
C++
1
#include <cmath>
Виктор_Сен
33 / 26 / 1
Регистрация: 01.08.2011
Сообщений: 176
08.08.2011, 21:44  [ТС] #4
Цитата Сообщение от Kastaneda Посмотреть сообщение
math.h
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
/* Definitions of useful mathematical constants
 * M_E        - e
 * M_LOG2E    - log2(e)
 * M_LOG10E   - log10(e)
 * M_LN2      - ln(2)
 * M_LN10     - ln(10)
 * M_PI       - pi
 * M_PI_2     - pi/2
 * M_PI_4     - pi/4
 * M_1_PI     - 1/pi
 * M_2_PI     - 2/pi
 * M_2_SQRTPI - 2/sqrt(pi)
 * M_SQRT2    - sqrt(2)
 * M_SQRT1_2  - 1/sqrt(2)
 */
 
#define M_E        2.71828182845904523536
#define M_LOG2E    1.44269504088896340736
#define M_LOG10E   0.434294481903251827651
#define M_LN2      0.693147180559945309417
#define M_LN10     2.30258509299404568402
#define M_PI       3.14159265358979323846
#define M_PI_2     1.57079632679489661923
#define M_PI_4     0.785398163397448309616
#define M_1_PI     0.318309886183790671538
#define M_2_PI     0.636619772367581343076
#define M_2_SQRTPI 1.12837916709551257390
#define M_SQRT2    1.41421356237309504880
#define M_SQRT1_2  0.707106781186547524401
Да, это я знаю. Просто когда я написал
C
1
float a=M_PI;
, то компилятор выдал сообщение, что "M_PI" не продекларированный идентификатор.
Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
08.08.2011, 22:02 #5
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <cmath>
using namespace std;
 
int main() {
    double a = M_PI; //float a = M_PI;
    cout << a << endl;
    return 0;
}
Никаких сообщений.
Виктор_Сен
33 / 26 / 1
Регистрация: 01.08.2011
Сообщений: 176
08.08.2011, 22:18  [ТС] #6
C
1
2
3
4
5
6
7
8
9
10
// Test3.cpp : Defines the entry point for the console application.
 
#include "stdafx.h"
#include <cmath>
 
int _tmain(int argc, _TCHAR* argv[])
{
    double a=M_PI;
    return 0;
}
Выводит сообщение об ошибке, не знаю почему. Пробовал включать <math.h>, то же самое.
grizlik78
Эксперт С++
1908 / 1440 / 111
Регистрация: 29.05.2011
Сообщений: 2,996
08.08.2011, 22:18 #7
Если компилятор от микрософт, то может помочь это:
C++
1
2
#define _USE_MATH_DEFINES
#include <cmath>
Виктор_Сен
33 / 26 / 1
Регистрация: 01.08.2011
Сообщений: 176
08.08.2011, 22:40  [ТС] #8
Спасибо! Проблема решена.
IrineK
Заблокирован
08.08.2011, 23:10 #9
Если нужна только сама константа, можно не включать всю math, а просто указать:
C++
1
2
3
#define M_PI       3.14159265358979323846
 
.....
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
09.08.2011, 09:23 #10
Цитата Сообщение от Виктор_Сен
то компилятор выдал сообщение, что "M_PI" не продекларированный идентификатор.
потому что они не входят в стандарт

Добавлено через 4 часа 58 минут
C89 (draft)
4.5 MATHEMATICS <math.h>

The header <math.h> declares several mathematical functions and
defines one macro. The functions take double-precision arguments and
return double-precision values./93/ Integer arithmetic functions and
conversion functions are discussed later.

The macro defined is

HUGE_VAL

which expands to a positive double expression, not necessarily
representable as a float .
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
09.08.2011, 10:36 #11
Если нужна только сама константа, можно не включать всю math, а просто указать
А вот это очень плохая идея
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
09.08.2011, 11:37 #12
Для Пи можно так сделать:
C
1
double PI=acos(-1.);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2011, 11:37
Привет! Вот еще темы с ответами:

встроенные функции (inline) - C++
скажите что значит встроенные функции? не пойму. class a { int x,y; public: void get_x(int i,int j) //как я...

Неявно встроенные функции - C++
Что не могут делать неявно встроенные функции?

Есть ли встроенные функции для вычисления интеграла? - C++
Добрый вечер, подскажите есть ли какие-то функции встроены, по вычислению интеграла ? Или код надо самому прописывать ?

Visual c++ встроенные возможности по численному расчету производных и интегралов - C++
Есть ли в С++ библиотеки по численному расчету производных и интегралов?? не самому писать по алгоритму, а уже написанная библиотека...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.08.2011, 11:37
Ответ Создать тему
Опции темы

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