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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.81
Виктор_Сен
 Аватар для Виктор_Сен
30 / 23 / 1
Регистрация: 01.08.2011
Сообщений: 176
08.08.2011, 21:21     Встроенные математические констатны #1
Не подскажите, есть ли в си++ встроенные математические констатны "pi" и "e"?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2011, 21:21     Встроенные математические констатны
Посмотрите здесь:

встроенные функции (inline) C++
Встроенные функции в компилятор C++
встроенные константы в С++ (pi e) C++
C++ Встроенные функции
Встроенные циклы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 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
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
08.08.2011, 21:34     Встроенные математические констатны #3
Если речь о C++ тогда лучше так
C++
1
#include <cmath>
Виктор_Сен
 Аватар для Виктор_Сен
30 / 23 / 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
 Аватар для 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;
}
Никаких сообщений.
Виктор_Сен
 Аватар для Виктор_Сен
30 / 23 / 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
Эксперт С++
 Аватар для grizlik78
1884 / 1416 / 102
Регистрация: 29.05.2011
Сообщений: 2,961
08.08.2011, 22:18     Встроенные математические констатны #7
Если компилятор от микрософт, то может помочь это:
C++
1
2
#define _USE_MATH_DEFINES
#include <cmath>
Виктор_Сен
 Аватар для Виктор_Сен
30 / 23 / 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
4838 / 3237 / 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
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
09.08.2011, 10:36     Встроенные математические констатны #11
Если нужна только сама константа, можно не включать всю math, а просто указать
А вот это очень плохая идея
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2011, 11:37     Встроенные математические констатны
Еще ссылки по теме:

Встроенные функции C++
C++ Встроенные макросы
C++ Неявно встроенные функции

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

Или воспользуйтесь поиском по форуму:
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
09.08.2011, 11:37     Встроенные математические констатны #12
Для Пи можно так сделать:
C
1
double PI=acos(-1.);
Yandex
Объявления
09.08.2011, 11:37     Встроенные математические констатны
Ответ Создать тему
Опции темы

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