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

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

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

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

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

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

встроенные функции (inline) C++
Встроенные функции в компилятор C++
встроенные константы в С++ (pi e) C++
C++ Встроенные функции
Встроенные циклы C++
Встроенные функции C++
C++ Встроенные макросы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Форумчанин
Эксперт С++
 Аватар для Kastaneda
4253 / 2785 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 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
Эксперт С++
 Аватар для odip
7151 / 3291 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
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
1891 / 1423 / 104
Регистрация: 29.05.2011
Сообщений: 2,978
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
Эксперт С++
 Аватар для odip
7151 / 3291 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
09.08.2011, 10:36     Встроенные математические констатны #11
Если нужна только сама константа, можно не включать всю math, а просто указать
А вот это очень плохая идея
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2011, 11:37     Встроенные математические констатны
Еще ссылки по теме:

Дана символьная строка. Подсчитать в ней количество вхождений букв г, k, t. ( не используя встроенные функции) C++
C++ Неявно встроенные функции
C++ Есть ли встроенные функции для вычисления интеграла?
C++ Параметризованный класс. Встроенные арифметические статические или динамические типы данных
C++ Есть ли в cmake встроенные средства для копирования файлов

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

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

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