forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Пи, Pi, 3.14159 (http://forum.boolean.name/showthread.php?t=15879)

romby 20.11.2011 22:28

Пи, Pi, 3.14159
 
Возможно, этот вопрос обсуждался, но я не смог ничего найти. К сожалению, поиск по форуму по ключевому слову "Пи" не работает - говорит, мол, слишком мало букв.

Вопрос вот в чем. Если ли в МП константа Пи, как она называется, чему она равна :-D и насколько корректно она работает? В справке она не упоминается, а попытка предположить, что уже Pi существует, и поработать с ней, дала огорчающие непрогнозируемые результаты.

baton4ik 20.11.2011 22:58

Ответ: Пи, Pi, 3.14159
 
Так проверь или заведи свою.

PassCall 20.11.2011 23:37

Ответ: Пи, Pi, 3.14159
 
PHP код:

Const pi=3.14159

Не?

romby 21.11.2011 00:50

Ответ: Пи, Pi, 3.14159
 
Цитата:

Сообщение от baton4ik (Сообщение 210392)
Так проверь или заведи свою.

Я сюда за помощью пришел, а ты предлагаешь мне продолжать наступать на все те же старые грабли, вместо того, чтобы поделиться опытом ;)

Цитата:

Сообщение от PassCall (Сообщение 210397)
PHP код:

Const pi=3.14159

Не?

Возможно. А если мне нужно больше знаков после запятой? Я пробовал писать больше, но в расчетах фигня начинает появляться.

alexprey 21.11.2011 01:18

Ответ: Пи, Pi, 3.14159
 
если надо больше скопируй из калькулятора

baton4ik 21.11.2011 01:27

Ответ: Пи, Pi, 3.14159
 
Цитата:

Сообщение от romby (Сообщение 210405)
Я сюда за помощью пришел, а ты предлагаешь мне продолжать наступать на все те же старые грабли, вместо того, чтобы поделиться опытом ;)

Ну вообще народ обленился. Вместо того, чтоб попробовать "DrawText(Pi);" (или как там в мп), просит об этом на форуме.

romby 21.11.2011 02:10

Ответ: Пи, Pi, 3.14159
 
alexprey, ха-ха-ха :( . Очень толсто. Это форум троллей или куда я попал?

baton4ik
Я-то уже давно попробовал... :stop: У тебя сколько получилось? У меня точно не 3,14 :dontknow:

Если использовать в коде имя Pi без какого-бы то нибыло объявления, компилятор не выдает никаких ошибок. Это значит, что существует некая недокументированная константа или переменная. Но работа с ней непредсказуема - то она равна трем, то двум... Если объявить свою константу или переменную по имени Pi и "скопировать больше знаков из калькуляра" - и толку? В расчетах они все равно участвовать не будут, а если знаков будет много, опять попрет непредсказуемая фигня.
PHP код:

program DeleteME;
var 
Pi:real;
begin
  Pi 
:= 3.14159265358979//323846264338327950288419716939937510582097494459230781640628620899862803482534211706798;
  
Drawtext(''+(Pi*1000000000), 00);
  
Repaint;
  
repeat Delay(1000); until getKeyClicked<>KE_NONE;
end

В результате будет 3141593000, а не 3141592653,58979

...и то не всегда, особенно если у Pi после запятой было объявлено больше 10 знаков :(

alexprey 21.11.2011 02:42

Ответ: Пи, Pi, 3.14159
 
Drawtext(''+(Pi*1000000000), 0, 0);

о май гад, втф?????

alexprey 21.11.2011 02:44

Ответ: Пи, Pi, 3.14159
 
Вот тебе два оригинальных способа
Pi = acos(-1);
Pi = toRadians(180);

И да, я тут местный троль, ничего не шарящий в МП и программировании в общем

NitE 21.11.2011 03:54

Ответ: Пи, Pi, 3.14159
 
Эмм, зачем такая точность? Пяти знаков после запятой хватит, чтобы достаточно точно считать в астрономических масштабах. Если тебе нужно ещё более точно - ты выбрал неправильный инстурмент.

YellowAfterlife 22.11.2011 10:37

Ответ: Пи, Pi, 3.14159
 
Если нужна большая точность - переключите режим чисел на floating point. Fixed point-числа имеют очень ограниченную точность.

Igor 22.11.2011 15:05

Ответ: Пи, Pi, 3.14159
 
Цитата:

Эмм, зачем такая точность? Пяти знаков после запятой хватит, чтобы достаточно точно считать в астрономических масштабах. Если тебе нужно ещё более точно - ты выбрал неправильный инстурмент.
Нередко в астрономии можно округлять пи до трёх без потери точности

SBJoker 22.11.2011 16:03

Ответ: Пи, Pi, 3.14159
 
Цитата:

Сообщение от Igor (Сообщение 210630)
Нередко в астрономии можно округлять пи до трёх без потери точности

Ну у нас последнее время так спутники и запускают...

romby 23.11.2011 01:52

Ответ: Пи, Pi, 3.14159
 
А все-таки, кто-нибудь знает, что скрывается за встроенным идентификатором Pi? :)

ViNT 23.11.2011 02:10

Ответ: Пи, Pi, 3.14159
 
Цитата:

Сообщение от romby (Сообщение 210766)
А все-таки, кто-нибудь знает, что скрывается за встроенным идентификатором Pi? :)

Из
r:=pi;
компилятор генерирует код
Код:

r = new Real();
 r = new Real(new Real("0.000000"));

то есть просто создает число, равное нулю.
Скорее всего, разработчики хотели ввести такую константу, но потом передумали, и заменили на "заглушку". Но потом забыли ее убрать.


Часовой пояс GMT +4, время: 16:33.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot