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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 355, средняя оценка - 4.72
gira13
4 / 4 / 0
Регистрация: 20.12.2010
Сообщений: 20
#1

Есть ли какая-то константа в С, означающая число Пи - C++

20.12.2010, 01:30. Просмотров 55438. Ответов 23
Метки нет (Все метки)

Или может функция, возвращающая точное число Пи
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2010, 01:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Есть ли какая-то константа в С, означающая число Пи (C++):

Дано трехзначное число. Определить, какая цифра в нем есть больше – первая или последняя. - C++
задано трицифровое число. Как определить, какая цифра в нем есть большей – первая или последняя.

Какой закон распределения имеет случайная величина означающая число извлеченных красных карандашей? - Теория вероятностей
Помогите пожалуйста решить две задачи очень срочно надо решить!ничего не понимаю! 2) В коробке находится 7 карандашей из которых...

Дано натуральное число. Если в нем есть а и в то определить какая правее - Turbo Pascal
Дано натуральное число. Если в нем есть а и в то определить какая правее Добавлено через 2 часа 27 минут Дано натуральное число....

Какой закон распределения вероятностей имеет случайная величина,означающая число белых шаров среди извлеченных шаров - Теория вероятностей
В урне 15 шаров, из них 8 белых. Наудачу извлекают шесть шаров помогите пожалуйста

Ввод последовательности целых чисел, конечным числом является число С. (константа, число оповещающее об остановке ввода) - Delphi
Необходимо написать на делфи! Сам я программист по плюсам и совершенно не представляю как реализовать эту прогу на делфи.Дана...

Есть ли встроенная константа Пи - VBA
Ребят, подскажите неужели в вба нет встроенной константы Пи? пробовал и Pi и Math.Pi - нифига... Может как-то по-другому?

23
sandye51
программист С++
684 / 586 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
20.12.2010, 01:34 #2
есть
C
1
M_PI
2
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
20.12.2010, 04:34 #3
M_PI - расширение компилятора
0
easybudda
Модератор
Эксперт CЭксперт С++
9662 / 5611 / 952
Регистрация: 25.07.2009
Сообщений: 10,774
20.12.2010, 09:11 #4
Цитата Сообщение от accept Посмотреть сообщение
M_PI - расширение компилятора
В каком смысле?
Код
$ grep M_PI /usr/include/math.h
#define M_PI            3.14159265358979323846
#define M_TWOPI         (M_PI * 2.0)
#define M_PI_2          1.57079632679489661923
#define M_PI_4          0.78539816339744830962
1
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
20.12.2010, 09:28 #5
в том, что в языке нету M_PI, это расширение gcc
less /usr/include/math.h
/M_PI
Код
#if defined __USE_BSD || defined __USE_XOPEN
0
easybudda
Модератор
Эксперт CЭксперт С++
9662 / 5611 / 952
Регистрация: 25.07.2009
Сообщений: 10,774
20.12.2010, 10:18 #6
accept, ну в мелкостудии оно тоже определено, правда, как у них водится, немного по-своему...
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
33
34
35
36
37
38
39
#if defined(_USE_MATH_DEFINES) && !defined(_MATH_DEFINES_DEFINED)
#define _MATH_DEFINES_DEFINED
 
/* Define _USE_MATH_DEFINES before including math.h to expose these macro
 * definitions for common math constants.  These are placed under an #ifdef
 * since these commonly-defined names are not part of the C/C++ standards.
 */
 
/* 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
 
#endif  /* _USE_MATH_DEFINES */
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
20.12.2010, 10:46 #7
расширения могут быть определены везде, но они не должны ничему соответствовать
их могут менять и в пределах одного компилятора, в разных его версиях
но самое главное, они могут называться одинаково, а значения разные иметь
и из-за этого в программе появляется неопределённость
1
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
20.12.2010, 12:05 #8
accept, по-моему, вы придираетесь. Я лично не верю, что завтра выйдет новая версия моего любимого компилятора, и в ней будет
C
1
#define M_PI       3.16159265358979323846
0
easybudda
Модератор
Эксперт CЭксперт С++
9662 / 5611 / 952
Регистрация: 25.07.2009
Сообщений: 10,774
20.12.2010, 12:45 #9

Не по теме:

Цитата Сообщение от accept Посмотреть сообщение
но самое главное, они могут называться одинаково, а значения разные иметь
Это как у Задорнова: " ...Американцы решили считать число пи за 3, чтобы считать было легче."

Да никто не спорит, что константа пи - не часть языка С/С++, но с вероятностью 99.(9)% она будет определена в math.h или во включаемом им заголовке и значению её удивляться не прийдётся.
1
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.12.2010, 06:34 #10
да, можно определить её как 3.14 и ничего удивительного
просто в программе что-то там будет округляться совсем немного, и ракета полетит не туда чуть-чуть

Цитата Сообщение от silent_1991
accept, по-моему, вы придираетесь. Я лично не верю, что завтра выйдет новая версия моего любимого компилятора
программа должна быть переносимой, иначе не выйдет что-нибудь там когда-нибудь, и придётся её класть куда-нибудь очень далеко и надолго
0
агерон
268 / 267 / 33
Регистрация: 12.10.2009
Сообщений: 1,060
21.12.2010, 07:07 #11
accept, ну раз такое дело кто тебе мешает определить через #define что то вроде MyPI с желанной точностью?
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.12.2010, 07:17 #12
ничто не мешает, но это не расширение
расширение может выглядеть одинаково, а работать по-разному
и читать инфу по каждому расширению, в каком компиляторе оно какое, да нафик это надо

понимаешь, вот есть функция strcpy() и вот она есть в стандарте, и хоть что там будут писать какие-нибудь компиляторы, предлагать перейти на похожую функцию, только чуть-чуть другую, да мне оно нафик не надо, потому что я стандарт прочитал, как она работает запомнил, и всё, я знаю где там и что, и поменяться оно может только в новом стандарте, который я естественно на этот счёт просканирую точно также, как первый
2
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
21.12.2010, 07:25 #13
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
#include <cmath>
#include <iomanip>
#include <iostream>
int main()
{
    std::cout << std::setprecision(20)
              << acos(-1.0)
              << std::endl;    
}
7
nullpointer
46 / 46 / 5
Регистрация: 30.03.2009
Сообщений: 522
19.05.2013, 21:48 #14
Не могу понять в чем дело. Подключаю math.h и пишу в функции
C++
1
return pow(4 * M_PI * fabs(x - y), -1) - pow(4 * M_PI * fabs(x - yy), -1);
Компилятор начинает упорно ругаться на M_PI как на необъявленный идентификатор.
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
19.05.2013, 21:54 #15
Так тебе об этом и говорят. M_PI не является частью стандарта. Какой компилятор?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2013, 21:54
Привет! Вот еще темы с ответами:

Дано натуральное число. Если в нем есть цифры a и b, то определить, какая из них расположена в числе правее - C#
Дано натуральное число. Если в нем есть цифры a и b, то определить, какая из них расположена в числе правее. Если одна или обе эти цифры...

Есть ли константа системной папки виндоус? - Visual Basic
Есть ли в VB константа системной папки виндоус? Чтобы не определять версию винды, т.к. папки по разному называются, а сразу обратиться к...

Есть ли в C# константа, которая хранит путь к экзешнику - C#
Есть ли в C# константа, которая хранит путь к экзешнику? Ну или просто скажите как определить место, где находится запускаемое приложение...

Даны функциональная константа, предикатная константа и определённое количество аксиом. Как построить модель - Логика и множества
Даны функциональная константа, предикатная константа и определённое количество аксиом. Как построит модель?


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

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

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