Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 20.11.2011, 22:28   #1
romby
AnyKey`щик
 
Регистрация: 08.11.2011
Сообщений: 11
Написано одно полезное сообщение
Вопрос Пи, Pi, 3.14159

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

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

Последний раз редактировалось romby, 23.11.2011 в 01:54. Причина: Добавление иконки для сообщения
(Offline)
 
Ответить с цитированием
Старый 20.11.2011, 22:58   #2
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: Пи, Pi, 3.14159

Так проверь или заведи свою.
(Offline)
 
Ответить с цитированием
Старый 20.11.2011, 23:37   #3
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: Пи, Pi, 3.14159

Const pi=3.14159
Не?
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Старый 21.11.2011, 00:50   #4
romby
AnyKey`щик
 
Регистрация: 08.11.2011
Сообщений: 11
Написано одно полезное сообщение
Ответ: Пи, Pi, 3.14159

Сообщение от baton4ik Посмотреть сообщение
Так проверь или заведи свою.
Я сюда за помощью пришел, а ты предлагаешь мне продолжать наступать на все те же старые грабли, вместо того, чтобы поделиться опытом

Сообщение от PassCall Посмотреть сообщение
Const pi=3.14159
Не?
Возможно. А если мне нужно больше знаков после запятой? Я пробовал писать больше, но в расчетах фигня начинает появляться.
(Offline)
 
Ответить с цитированием
Старый 21.11.2011, 01:18   #5
alexprey
ПроЭктировщик
 
Регистрация: 22.10.2010
Сообщений: 196
Написано 16 полезных сообщений
(для 30 пользователей)
Ответ: Пи, Pi, 3.14159

если надо больше скопируй из калькулятора
__________________
Для меня нет ничего не реального в кодинге, но мне лень
gainOS - прорыв в проектировании ОС на MIDlet Pascal
(Offline)
 
Ответить с цитированием
Старый 21.11.2011, 01:27   #6
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: Пи, Pi, 3.14159

Сообщение от romby Посмотреть сообщение
Я сюда за помощью пришел, а ты предлагаешь мне продолжать наступать на все те же старые грабли, вместо того, чтобы поделиться опытом
Ну вообще народ обленился. Вместо того, чтоб попробовать "DrawText(Pi);" (или как там в мп), просит об этом на форуме.
(Offline)
 
Ответить с цитированием
Старый 21.11.2011, 02:10   #7
romby
AnyKey`щик
 
Регистрация: 08.11.2011
Сообщений: 11
Написано одно полезное сообщение
Ответ: Пи, Pi, 3.14159

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

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

Если использовать в коде имя Pi без какого-бы то нибыло объявления, компилятор не выдает никаких ошибок. Это значит, что существует некая недокументированная константа или переменная. Но работа с ней непредсказуема - то она равна трем, то двум... Если объявить свою константу или переменную по имени Pi и "скопировать больше знаков из калькуляра" - и толку? В расчетах они все равно участвовать не будут, а если знаков будет много, опять попрет непредсказуемая фигня.
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 знаков
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pepel (20.03.2012)
Старый 21.11.2011, 02:42   #8
alexprey
ПроЭктировщик
 
Регистрация: 22.10.2010
Сообщений: 196
Написано 16 полезных сообщений
(для 30 пользователей)
Ответ: Пи, Pi, 3.14159

Drawtext(''+(Pi*1000000000), 0, 0);

о май гад, втф?????
__________________
Для меня нет ничего не реального в кодинге, но мне лень
gainOS - прорыв в проектировании ОС на MIDlet Pascal
(Offline)
 
Ответить с цитированием
Старый 21.11.2011, 02:44   #9
alexprey
ПроЭктировщик
 
Регистрация: 22.10.2010
Сообщений: 196
Написано 16 полезных сообщений
(для 30 пользователей)
Ответ: Пи, Pi, 3.14159

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

И да, я тут местный троль, ничего не шарящий в МП и программировании в общем
__________________
Для меня нет ничего не реального в кодинге, но мне лень
gainOS - прорыв в проектировании ОС на MIDlet Pascal
(Offline)
 
Ответить с цитированием
Старый 21.11.2011, 03:54   #10
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Пи, Pi, 3.14159

Эмм, зачем такая точность? Пяти знаков после запятой хватит, чтобы достаточно точно считать в астрономических масштабах. Если тебе нужно ещё более точно - ты выбрал неправильный инстурмент.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо NitE за это полезное сообщение:
Nex (21.11.2011), Reizel (21.11.2011), Reks888 (21.11.2011)
Старый 22.11.2011, 10:37   #11
YellowAfterlife
ПроЭктировщик
 
Аватар для YellowAfterlife
 
Регистрация: 19.02.2011
Сообщений: 134
Написано 81 полезных сообщений
(для 219 пользователей)
Ответ: Пи, Pi, 3.14159

Если нужна большая точность - переключите режим чисел на floating point. Fixed point-числа имеют очень ограниченную точность.
__________________

Мой сайт-блог. Игры, обновления, примеры для Haxe, JavaScript(+HTML5), GameMaker, Love2d...
(Offline)
 
Ответить с цитированием
Старый 22.11.2011, 15:05   #12
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений
(для 790 пользователей)
Ответ: Пи, Pi, 3.14159

Эмм, зачем такая точность? Пяти знаков после запятой хватит, чтобы достаточно точно считать в астрономических масштабах. Если тебе нужно ещё более точно - ты выбрал неправильный инстурмент.
Нередко в астрономии можно округлять пи до трёх без потери точности
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Старый 22.11.2011, 16:03   #13
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Пи, Pi, 3.14159

Сообщение от Igor Посмотреть сообщение
Нередко в астрономии можно округлять пи до трёх без потери точности
Ну у нас последнее время так спутники и запускают...
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
HolyDel (22.11.2011)
Старый 23.11.2011, 01:52   #14
romby
AnyKey`щик
 
Регистрация: 08.11.2011
Сообщений: 11
Написано одно полезное сообщение
Ответ: Пи, Pi, 3.14159

А все-таки, кто-нибудь знает, что скрывается за встроенным идентификатором Pi?
(Offline)
 
Ответить с цитированием
Старый 23.11.2011, 02:10   #15
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Пи, Pi, 3.14159

Сообщение от romby Посмотреть сообщение
А все-таки, кто-нибудь знает, что скрывается за встроенным идентификатором Pi?
Из
r:=pi;
компилятор генерирует код
 r = new Real();
 r = new Real(new Real("0.000000"));
то есть просто создает число, равное нулю.
Скорее всего, разработчики хотели ввести такую константу, но потом передумали, и заменили на "заглушку". Но потом забыли ее убрать.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
romby (23.11.2011)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com