Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

Грусно - до чего же ламерство окрепло...   Найти похожие ветки 

 
Igorek ©   (2004-07-02 14:17) [0]

Как только намечается интересное глубокое обсуждение, появляются разные точки зрения на проблему - приходят недалекие люди (ламеры в моем понимании), обзывают противоположную точку зрения ересью, опонента дураком, вруном и т.д. Опонент тоже человек - отвечает на грубость в том же ключе...
И доблесные модераторы закрывают обсуждение. К ним я здесь не предъявляю претензий. Просто грусно, что общий уровень сайта от такой тенденции падает.


 
Sandman25 ©   (2004-07-02 14:19) [1]

Как статья про real? Понравилась?


 
Vlad ©   (2004-07-02 14:19) [2]


>
> Igorek ©   (02.07.04 14:17)  


> Опонент тоже человек - отвечает на грубость в том же ключе

В этом и проблема.
Хам пусть хамит, это его проблемы. Зачем опускаться до его уровня ?


 
Igorek ©   (2004-07-02 14:28) [3]


> Sandman25 ©   (02.07.04 14:19) [1]

Пока не услышу извинений - отвечать не намерен. Для начала извиняюсь сам перед вами лично и беру свои слова назад.

> Vlad ©   (02.07.04 14:19) [2]
> В этом и проблема.
> Хам пусть хамит, это его проблемы. Зачем опускаться до его
> уровня ?

Вы конечно правы. Но когда тебя поливают грязью трудно удержаться. Да и желание обсуждать пропадает начисто. А интересная тема при этом умирает.


 
Sandman25 ©   (2004-07-02 14:32) [4]

[3] Igorek ©   (02.07.04 14:28)

Нет проблем. Я тоже извиняюсь и беру свои слова назад.


 
pasha_golub ©   (2004-07-02 14:34) [5]

А теперь раскройте для всех тайный смысл, пожалуйста. Мне тоже хочется интересной темы.


 
Sandman25 ©   (2004-07-02 14:37) [6]

Теперь мы можем обсудить проблему чисел?
имеем

R := 0.1;
while R <> 0.5 do
 R := R + 0.1;

что же мы имеем в итоге. А имеем мы примерно вот что:
R := 0.099999999998;
while R <> 0.499999999998 do
 R := R + 0.099999999998;
Получаем, что R примет следующие значения:
0.099999999998
0,199999999996
0,299999999994
0,399999999992
0,499999999990
0,599999999988
и т.д.


 
Ega23 ©   (2004-07-02 14:37) [7]

"А в чём сила, брат?"


 
Бир аббасы   (2004-07-02 14:42) [8]

Игорек, а ты что, в первый раз, что ли? Не привык еще? :-)
Здесь - это нормальная ситуация, то есть все идет своим чередом. Ты посмотри ветку про войну, там такого добра навалом.


 
Тимохов ©   (2004-07-02 14:52) [9]


> Igorek ©   (02.07.04 14:17)  

Игорь - ересь не может быть глубойкой и инетресной темой.
Вы гоните, а выдаете это за глубину :)))
Задумайтесь о статье. Прочтите еще раз внимательно. И, уверен, сами себя (про себя) назовете не очень хорошо. :))))

За "урода" также прошу прощения. :)))


 
Тимохов ©   (2004-07-02 14:56) [10]


> Бир аббасы   (02.07.04 14:42) [8]

вопрос, который автор данной ветки имел в виду, был не "здесь", а основной. Так, что не надо сравнивать с веткой в "потрепаться" :)))


 
han_malign ©   (2004-07-02 15:15) [11]

>Теперь мы можем обсудить проблему чисел?
- и вот пришел я, недалекий человек, и сказал - что вести высокопарные беседы, об элементарных вещах, которые в школе разжевывают, признаком "далекости" не назовешь...
З.Ы. Заранее беру свои слова взад.

>Ega23 ©   (02.07.04 14:37) [7]
- "в Ньютонах"


 
Sandman25 ©   (2004-07-02 15:17) [12]

[11] han_malign ©   (02.07.04 15:15)

К сожалению, об этом в школе не рассказывают.


 
Ega23 ©   (2004-07-02 15:21) [13]

han_malign ©   (02.07.04 15:15) [11]

А может в "лошадях"? Или в динах?


 
vuk ©   (2004-07-02 15:22) [14]

to Sandman25 ©   (02.07.04 15:17) [12]:
>К сожалению, об этом в школе не рассказывают.
Но в ВУЗ-е уж точно рассказывают.


 
Digitman ©   (2004-07-02 15:22) [15]

ламер - плод расцветающего махровым цветом очередного буржуйского социума ... "хочу все сразу и сей секунд и нахаляву"


 
pasha_golub ©   (2004-07-02 15:24) [16]

vuk ©   (02.07.04 15:22) [14]
Если бы в ВУЗе. Во всяком случае, не в каждом. :(


 
begin...end ©   (2004-07-02 15:25) [17]

Блин, я уже жалею, что дал там ссылку на эту статью.
И жалею, конечно, не потому, что в обсуждение вступил Igorek.
Просто навешивание LMD уже поднадоело.

:(


 
default ©   (2004-07-02 15:27) [18]

да по-моему это нигде не рассказывается, максимум скажут диап-он типов, подпрог-мы работы с ними и подобное


 
Ega23 ©   (2004-07-02 15:27) [19]

"хочу все сразу и сей секунд и нахаляву"

И чтобы ничего не делать.


 
vuk ©   (2004-07-02 15:27) [20]

to pasha_golub ©   (02.07.04 15:24) [16]:
Ну... я учился в ВУЗе их разряда "заборостроительных". Про двоичное представление вещественных чисел рассказывали. И еще вручную заставляли раскладывать.


 
default ©   (2004-07-02 15:28) [21]

видимо это было РАНЬШЕ


 
Тимохов ©   (2004-07-02 15:29) [22]

у нас тоже было (вмик, мгу), но только я пинал тогда :)))

сейчас наверстываю


 
Digitman ©   (2004-07-02 15:29) [23]


> заборостроительных


арбузолитейность вуза еще ни о чем не говорит, думаю ?


> И еще вручную заставляли раскладывать


и, видать, - от души ?
и, надеюсь, не зря ?


 
Тимохов ©   (2004-07-02 15:30) [24]


> begin...end ©   (02.07.04 15:25) [17]
> Просто навешивание LMD уже поднадоело.


есть другие модели поведения на ересь?


 
pasha_golub ©   (2004-07-02 15:30) [25]

vuk ©   (02.07.04 15:27) [20]
Упс, где-то мы друг друга не допоняли.

2автор
Скажите, о чем ветка была конкретно?


 
Плохиш ©   (2004-07-02 15:32) [26]


> Digitman ©   (02.07.04 15:22) [15]
> ламер - плод расцветающего махровым цветом очередного буржуйского
> социума ... "хочу все сразу и сей секунд и нахаляву"

Почему вину совковости всегда ищут у буржуев? Это, что традиция такая?


 
Тимохов ©   (2004-07-02 15:33) [27]


> pasha_golub ©   (02.07.04 15:30) [25]
> vuk ©   (02.07.04 15:27) [20]

http://delphimaster.net/view/1-1088687372/


 
Digitman ©   (2004-07-02 15:33) [28]


> Плохиш ©   (02.07.04 15:32) [26]


наверно ..


 
Igorek ©   (2004-07-02 15:34) [29]


> Тимохов ©   (02.07.04 14:52) [9]
> За "урода" также прошу прощения. :)))


> Sandman25 ©   (02.07.04 14:32) [4]
> Нет проблем. Я тоже извиняюсь и беру свои слова назад.

Принимается. Забыли. Давайте впредь не грубить. :-)))


> Теперь мы можем обсудить проблему чисел?
> имеем
>
> R := 0.1;
> while R <> 0.5 do
>  R := R + 0.1;
>
> что же мы имеем в итоге. А имеем мы примерно вот что:
> R := 0.099999999998;

Так вот, я утверждаю, что реализация десятичных чисел с плавающей точкой в Дельфи - Real (Single, Double, Extended) - корявая. Если недостаточно вышеуказанного примера - могу привести в общих чертах альтернативный вариант реализации.


> Sandman25 ©   (02.07.04 14:19) [1]
> Как статья про real? Понравилась?

Так себе. Правда неплохо он в конце парней из Микрософта ругал. Кстати странно, что упомянутый недостаток Вин98 не нашел патча. Может его можно самому сделать: дизасемблировать и перерыть бинари ОС на предмет инструкции выставления точности вычисления процессора. Найти, какие именно API функции оставляют за собой мусор в регистре управляющего слова, перехватить их и после вызова - поставить соотв. бит в слове на место. Тут Мастерам слово...

Я бы всерьез поругал также парней из Интел, а заодно из Борланд.


 
begin...end ©   (2004-07-02 15:36) [30]


> [24] Тимохов ©   (02.07.04 15:30)


> есть другие модели поведения на ересь?

Я не могу назвать сообщения в той ветке ересью.

А модели - есть. Молчание, например.

Только не подумайте, что я Вам навязываю модель поведения.


> [25] pasha_golub ©   (02.07.04 15:30)


> Скажите, о чем ветка была конкретно?

http://delphimaster.net/view/1-1088687372/


 
Тимохов ©   (2004-07-02 15:37) [31]


> Igorek ©   (02.07.04 15:34) [29]


> Так вот, я утверждаю, что реализация десятичных чисел с
> плавающей точкой в Дельфи - Real (Single, Double, Extended)
> - корявая.

Игорь, я стараюсь не грубить, но вы говорите не правду - статью вы не читали или читали очень поверхностно :))) Почитайте комментарии - вопрос-ответ. Там есть точно такая же мысль как (у вас) и точно такой же ответ (как у меня).


 
default ©   (2004-07-02 15:37) [32]

Igorek ©   (02.07.04 15:34) [29]
"Если недостаточно вышеуказанного примера - могу привести в общих чертах альтернативный вариант реализации."
давай


 
Тимохов ©   (2004-07-02 15:38) [33]


> begin...end ©   (02.07.04 15:36) [30]

про молчание я уже подумываю...
но ведь как ножом по пенопласту и по стеклу.
тогда надо не только неметь, но и слепнуть (чтобы не видеть).
:)))


 
vuk ©   (2004-07-02 15:41) [34]

to Digitman ©   (02.07.04 15:29) [23]:
>арбузолитейность вуза еще ни о чем не говорит, думаю ?
Как сказать... По большей части - говорит. Преподавательский состав уже тогда (лет 10 назад) был не очень... :o( Бывали, правда, редкие исключения.

>и, видать, - от души ?
>и, надеюсь, не зря ?
Ну да. Во всяком случае вопросы про округление и т.п. уже тогда пропали раз и навсегда. :o)

to Igorek ©   (02.07.04 15:34) [29]:
>Так вот, я утверждаю, что реализация десятичных чисел с
>плавающей точкой в Дельфи
Она это... В процессоре...


 
Тимохов ©   (2004-07-02 15:42) [35]


> Она это... В процессоре...

а чтобы это понять, надо читать! :)))))
а не утверждать :)))


 
Igorek ©   (2004-07-02 15:49) [36]


> han_malign ©   (02.07.04 15:15) [11]
> - и вот пришел я, недалекий человек, и сказал - что вести
> высокопарные беседы, об элементарных вещах, которые в школе
> разжевывают, признаком "далекости" не назовешь...

Согласен. Это скорее признак "глубокости".

> begin...end ©   (02.07.04 15:25) [17]
> Блин, я уже жалею, что дал там ссылку на эту статью.

Отчего же. Лично я вам благодарен - очень познавательно и симптоматично.

---
Всем кто хочет конструктивно учавствовать в дискуссии рекоммендуется прочитать:
http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=374


 
default ©   (2004-07-02 15:51) [37]

Igorek ©   (02.07.04 15:49) [36]
так изложи свою идею


 
Digitman ©   (2004-07-02 15:51) [38]


> vuk ©   (02.07.04 15:41) [34]
> Во всяком случае вопросы про округление и т.п. уже
> тогда пропали раз и навсегда.


ибо, вероятно, про нормализованное внутреннее представление FP-чисел таки вразумительно объяснили ..


 
Тимохов ©   (2004-07-02 15:53) [39]


> Igorek ©   (02.07.04 15:49) [36]

кто-то здесь неконструктивен?
есть один, но он урвеждает, что тоже читал :))))


 
pasha_golub ©   (2004-07-02 16:02) [40]

Тимохов ©   (02.07.04 15:33) [27]
Угу, благодарю. Статья на Королевстве в свое вррмя во мне разбудила кучу противоречивых чувств. От удовльствия до возмущения.

Igorek ©
А как же ты модель предложишь, если все операции в процессоре построены на двоичной системе счисления?


 
Тимохов ©   (2004-07-02 16:05) [41]


> pasha_golub ©   (02.07.04 16:02) [40]


> Угу, благодарю.

за что? не понял. За статью в свое время?


> А как же ты модель предложишь, если все операции в процессоре
> построены на двоичной системе счисления?

Игорек не сообирается предлагать модель сейчас - он собирается предолжить 10 разрядный процессор. Ужо потом модель. :)))))


 
Igorek ©   (2004-07-02 16:07) [42]


> to Igorek ©   (02.07.04 15:34) [29]:
> >Так вот, я утверждаю, что реализация десятичных чисел с
> >плавающей точкой в Дельфи
> Она это... В процессоре...

Неа. В процессоре своя реализация - в статье написано - Extended. Не о том речь. Речь именно о реализации в Дельфи. И корява она потому, что плоско копирует реализацию процессора. В принципе в этом нету ничего плохого. Но имхо сначала надо было сделать нормальное десятичное число с плавающей точкой. Что бы не было граблей типа r := 0.1 - r <> 0.1. А как довесок - дать числа прямо копирующие те что в процессоре (и их урезанные варианты).

И не надо говорить, что плоское представление десятичного числа в двоичной форме облегчает операции с ним - это тема отдельного разговора (о суматорах и т.п.).

> Тимохов ©   (02.07.04 15:37) [31]
> вы говорите не правду -
> статью вы не читали или читали очень поверхностно :)))

Странный вывод. Вроде бы ни из чего не следует. Впрочем думайте что хотите, но уже не повторяйтесь.

> default ©   (02.07.04 15:37) [32]
> Igorek ©   (02.07.04 15:34) [29]
> "Если недостаточно вышеуказанного примера - могу привести
> в общих чертах альтернативный вариант реализации."
> давай

Ок. Чуть позже. Пора работать.


 
default ©   (2004-07-02 16:11) [43]

Igorek ©   (02.07.04 16:07) [42]
"Неа. В процессоре своя реализация - в статье написано - Extended. Не о том речь. Речь именно о реализации в Дельфи. И корява она потому, что плоско копирует реализацию процессора. В принципе в этом нету ничего плохого. Но имхо сначала надо было сделать нормальное десятичное число с плавающей точкой. Что бы не было граблей типа r := 0.1 - r <> 0.1. А как довесок - дать числа прямо копирующие те что в процессоре (и их урезанные варианты)."
на самом деле вроде бы Вы статью не поняли...


 
vuk ©   (2004-07-02 16:13) [44]

to Igorek ©   (02.07.04 16:07) [42]:
>И корява она потому, что плоско копирует реализацию процессора.
Признайтесь, Вы статью по диагонали читали? :o)


 
Тимохов ©   (2004-07-02 16:13) [45]


> Ок. Чуть позже. Пора работать.

гению пора работать :)))


> Странный вывод. Вроде бы ни из чего не следует. Впрочем
> думайте что хотите, но уже не повторяйтесь.

именно, что "вроде бы" :)))

Обратите внимание на тип tdecimal, о котором я сказал в оригинальном топике (в овновной). Это то, что нужно :)))

Ладно, не обижайтесь - просто вы очень резво начали рассуждать на эту тему не до конца ее прочуствовав. Не спешите. Я тоже когда прочел статью (эту и еще несколько) был в шоке и нес чушь. Потом прошло :)))

Желаю успехов.

ЗЫ. Старался не повторяться.


 
Тимохов ©   (2004-07-02 16:14) [46]


> default ©   (02.07.04 16:11) [43]

тссс!
не говорите ему этого.
сечас и вас в ламеры запишет :)))))0


 
Тимохов ©   (2004-07-02 16:15) [47]


> vuk ©   (02.07.04 16:13) [44]

и вы тссс!
не посмотрит ведь на ваш значек.
будете у него ламером.


 
vuk ©   (2004-07-02 16:20) [48]

to Тимохов ©   (02.07.04 16:15) [47]:
>будете у него ламером.
А я дурак, мне все по фигу! :-P


 
vuk ©   (2004-07-02 16:24) [49]

(шепотом) А еще есть модуль FMTBCD.pas


 
Тимохов ©   (2004-07-02 16:27) [50]


> vuk ©   (02.07.04 16:24) [49]

(мимикой) tdecimal родной для windows тип, vartype = $e. Какого фига не вынесен в дельфи не пойму. Точно соответствует типу SQL Server decimal(28,10).


 
default ©   (2004-07-02 16:28) [51]

Currency ещё есть


 
Игорь Шевченко ©   (2004-07-02 16:32) [52]


> tdecimal родной для windows тип


Это как, пардон, родной для Windows ?

typedef struct tagDEC {
   USHORT wReserved;
   union {
       struct {
           char scale;   // The number of decimal places for the
// number. Valid values are from 0 to 28. So
// 12.345 is represented as 12345 with a
// scale of 3.
           Char sign;   // 0 for positive numbers or DECIMAL_NEG for
// negative numbers. So -1 is represented as
// 1 with the DECIMAL_NEG bit set.
       };
       USHORT signscale;
   };
   ULONG Hi32;            // The high 32 bits of your number
   union {
       struct {
#ifdef _MAC
           ULONG Mid32;
           ULONG Lo32;
#else
           ULONG Lo32;
           ULONG Mid32;
#endif
       };
       DWORDLONG Lo64;   // The low 64 bits of your number. This is an
                          // _int64.
   };
} DECIMAL;


 
Digitman ©   (2004-07-02 16:32) [53]


> vuk ©   (02.07.04 16:20) [48]
> А я дурак, мне все по фигу! :-P


пятница и не такое списывала)))))))))))))))))))))


 
Digitman ©   (2004-07-02 16:35) [54]


> Тимохов


не позорься уж ... насчет "родства" ... не надо ..


 
Тимохов ©   (2004-07-02 16:38) [55]


> Digitman ©   (02.07.04 16:35) [54]

знал, что к этому слову придеретесь :)))
что же в нем позороного?
МБ вы меня не так поняли. Я имел в виду, что этот тип возращает, например adodb.recordset для полей бд типа decimal(28,10) тип $e. Под родным, я имел в виду, что его знает windows. Всего то.


 
Тимохов ©   (2004-07-02 16:41) [56]


> Под родным, я имел в виду, что его знает windows. Всего
> то.

... и предоставляет для работы с этим типом api из указанной мной выше библиотки.


 
Kerk ©   (2004-07-02 16:44) [57]

> tdecimal родной для windows тип
А какая разница родной он для винды или нет?
Дело-то в процессоре.

Если вопрос тупой, то это, наверно, из-за пива...


 
Тимохов ©   (2004-07-02 16:46) [58]


> Kerk ©   (02.07.04 16:44) [57]

я выше объяснил, что я (возможно ошибочно) вкладывал в понятие "родной".


> Если вопрос тупой

это про что?


 
Anatoly Podgoretsky ©   (2004-07-02 16:47) [59]

Если автор начинает грубить то ветка естественно закрывается, если грубить начинает другой, то за что наказывать автора?
Или есть такое желание, заходим в ветку какая не нравится пару слов, для того чтобы ее закрыть?


 
Тимохов ©   (2004-07-02 16:49) [60]


> Anatoly Podgoretsky ©   (02.07.04 16:47) [59]

а вы про что? :)


 
Anatoly Podgoretsky ©   (2004-07-02 16:53) [61]

Про [0] и [3]
Кроме того тема где автор поливает грязью не может быть интересной.


 
Тимохов ©   (2004-07-02 16:56) [62]


> Anatoly Podgoretsky ©   (02.07.04 16:53) [61]

Что-то я не въеду, вы тоже считаете, что тема поднятая игорьком есть "интересное глубокое обсуждение" и он явился незаслуженно обиженным?


 
Digitman ©   (2004-07-02 16:56) [63]


> Тимохов ©   (02.07.04 16:38) [55]
> знал, что к этому слову придеретесь :)))
> что же в нем позороного?


Дмитрий, дык ыть не придрался я) ... напрасно ты это ... ну ведь на самом деле - прекрасно ж понимаешь, что речь идет ни о каких-то там recordset, а о том, что начиная с [6] базар углубился в "голубиные" принципы работы FP-подсистемы процессора .. при чем же здесь decimal ?


 
Тимохов ©   (2004-07-02 16:59) [64]


> Digitman ©   (02.07.04 16:56) [63]


> при чем же здесь decimal ?

только при том, что мне vuk сказал про bсd тип. Только и всего.

Исходно я игрьку про него говорил, т.к. он ну просто помирает хочет сравнивать - пусть сравинвает. :)))


 
Anatoly Podgoretsky ©   (2004-07-02 17:04) [65]

Тимохов ©   (02.07.04 16:56) [62]
Нет я так не считаю, я только говорю о [0] и [3] и о том, что делают с этим модераторы, кстати у него к ним нет претензий, а это уже хорошо, когда человек понимает за что закрыли или удалили ветку.


 
Тимохов ©   (2004-07-02 17:06) [66]


> Anatoly Podgoretsky ©   (02.07.04 17:04) [65]

к модераторам у меня тоже нет претензий.

ЗЫ. Автор имхо придуряется.


 
Digitman ©   (2004-07-02 17:08) [67]


> Тимохов ©   (02.07.04 16:59) [64]



> vuk сказал про bсd тип


но BCD-формат действительно поддерживается процессором ! ВНЕ зависимости от того, как его обозвали производители компиляторов/интерпретаторов ...


 
Тимохов ©   (2004-07-02 17:10) [68]


> Digitman ©   (02.07.04 17:08) [67]


> но BCD-формат действительно поддерживается процессором

очень хорошо.
спасибо.
надо будет с ним поразбираться - tdeсimal в действительности меня доставать начал :)))


 
Kerk ©   (2004-07-02 17:17) [69]


> > Если вопрос тупой
> это про что?

Это я про свой пост.


 
vuk ©   (2004-07-02 17:20) [70]

Если не ошибаюсь, в fmtbcd реализована работа с BCD вручную...


 
Sandman25 ©   (2004-07-02 17:20) [71]

[68] Тимохов ©   (02.07.04 17:10)

В институте его не проходили? В курсе ассемблера.


 
Digitman ©   (2004-07-02 17:21) [72]


> Тимохов ©   (02.07.04 17:10) [68]
> deсimal в действительности меня доставать начал :)))


значит, ты вырос до серьезного уровня, и это нельзя не отметить

imho, "decimal" было выдуман строго для "чайников"
суть же лежит в IEEE


 
Rem   (2004-07-02 17:21) [73]

2 Igorek

 1. Приведите, для начала, точное значение числа Pi.

 2. Обратите внимание, что в тригонометрии Pi определяется как 180 градусов.

 3. Подумайте, являются ли числа из п.1 и п.2 одинаковыми по сути?

 4. Ответьте:
    - почему они все же отличаются?
    - почему п.1 невозможен?

Подсказка: эти числа в разных системах счисления.

Совет: обратите внимание, что компьютер использует двоичную систему счисления, а люди (обыкновенно) - десятичную.

Окончательный вопрос: что будет, если округлить Pi в  разных системах счисления до 100-го знака? Будут ли равны эти два округленных числа?


 
Тимохов ©   (2004-07-02 17:25) [74]


> imho, "decimal" было выдуман строго для "чайников"

чем это можно аргументировать?
тип то неплохой, совместим в tvardata.
скорость мягко говоря меня не волнует.
так почему?


 
Anatoly Podgoretsky ©   (2004-07-02 17:27) [75]

Rem   (02.07.04 17:21) [73]
Сюда стоит также добавить обычно

Совет: обратите внимание, что обычно компьютер использует двоичную систему счисления, а люди (обыкновенно) - десятичную.

Поскольку еще предшественник x86 - i8080 уже поддерживал BCD
числа с фиксированой запятой и абсолютной точностью, вместо относительной для плавающей.


 
Digitman ©   (2004-07-02 17:34) [76]


> Тимохов ©   (02.07.04 17:25) [74]  
> чем это можно аргументировать?


> тип то неплохой, совместим в tvardata.
> скорость мягко говоря меня не волнует.
> так почему?


признаюсь честно - понятия не имею


> скорость мягко говоря меня не волнует.


и никого она не может волновать, когда речь идет конкретно о ран-тайм XOR компайл-тайм


тип то неплохой, совместим в tvardata.


важно не то, с какой конкретно структурой какого-то там Борланда, совместим тип, а важно то, что decimal-данные есть ничто иное как данные. соответствующие IEEE-соглашениям ... да хоть горшком их обзови - с т.з. процессора и его системы команд/формата хранимых данных  ничего не изменится


 
Тимохов ©   (2004-07-02 17:40) [77]


> Digitman ©   (02.07.04 17:34) [76]


>
> важно не то, с какой конкретно структурой какого-то там
> Борланда

может ошибаюсь, но разве в windows нет аналога шестнадцатибайтовго аналога tvardata?
разве это изобретение borland?


 
Тимохов ©   (2004-07-02 17:51) [78]


> vuk ©   (02.07.04 17:20) [70]
> Если не ошибаюсь, в fmtbcd реализована работа с BCD вручную...

можно пару слов-комментариев - что вы имеете в виду?


 
vuk ©   (2004-07-02 17:54) [79]

to Тимохов ©   (02.07.04 17:51) [78]:
>можно пару слов-комментариев - что вы имеете в виду?
Имею в виду свою реализацию BCD арифметики. Исходники гляньте. Впрочем, при помощи Custom Variants можно что угодно реализовать.


 
Тимохов ©   (2004-07-02 17:58) [80]


> vuk ©   (02.07.04 17:54) [79]

т.е. то, что с bcd в дельфях работает не процессор, а конкретный код в delphi?
я в общем так тоже всегда думал, но слова
"но BCD-формат действительно поддерживается процессором"
меня смутили...подумал, что не так что-то понимаю...


 
Anatoly Podgoretsky ©   (2004-07-02 18:01) [81]

Нет все нормально, кроме процессорной обработки (нижний уровень) еще и программная обработка. Мне известна одна старая борландовская реализация для 10 байтного варианта, со знаком и автоформатированием. Но они ее давно забросили, лет 15 назад.


 
Тимохов ©   (2004-07-02 18:03) [82]

когда говорят бывалые остается только ушами хлопать - кому верить :)))))))


> Anatoly Podgoretsky ©   (02.07.04 18:01) [81]


а что тогда в fmtbcd, например в AddNormalizedFractions?
Это же конкретная реализация. А где здесь прочессорная обработка?


 
Igorek ©   (2004-07-02 18:22) [83]


> Речь именно о реализации в Дельфи. И корява она потому,
> что плоско копирует реализацию процессора.

Поясню что я имел ввиду.
Пусть есть такой код:
procedure TForm1.Button1Click(Sender: TObject);
var
 r1, r2: Real;
begin
 r1 := 0.1;
 r2 := r1 + 0.1;
end;

Посмотрев что из этого генерирует Дельфи, увидим только инструкции: mov, fld, fadd, fstp. К сожалению я далеко не гуру в асме, но даже моих скромных мозгов хватает, что бы увидеть - процессор просто складывает числа беря их из памяти. А в памяти они содержатся в виде такого двоичного представления, о котором говорится в статье.
Т.е. самое главное: Дельфи берет число в исходнике, представляет его в виде двоичной дроби, прямо как есть записывает в память и потом передает процессору.
Если я в чем то ошибся - поправьте меня.


 
Тимохов ©   (2004-07-02 18:23) [84]


> Дельфи берет число в исходнике, представляет его в виде
> двоичной дроби

тут вы правы.
а чем дельфи то не прав?
В виде делятичной должен представлять?


 
begin...end ©   (2004-07-02 18:36) [85]


> [36] Igorek ©   (02.07.04 15:49)


> Отчего же. Лично я вам благодарен - очень познавательно
> и симптоматично.

Симптоматично - э... - в каком смысле?


 
Тимохов ©   (2004-07-02 18:39) [86]


> Igorek ©   (02.07.04 18:22) [83]

Ладно, мне домой пора - ответа на 84 видать не дождусь.
Хочу еще раз попросить не обижаться :)))
Надеюсь сегодняшнее общение приведет к тому, что вы разберетесь с этой темой до конца :))) еще нас учить будете :))
Всего хорошего.


 
Igorek ©   (2004-07-02 18:42) [87]


> Тимохов ©   (02.07.04 18:23) [84]
> а чем дельфи то не прав?
> В виде делятичной должен представлять?

Да нет. Память же у нас двоичная. Но это не значит что обязательно в виде двоичной дроби. Просто мы должны в память записать число в виде набора битов (байтов). От этого надо плясать.
Т.е. для нормальной реализации Real надо:
- или представлять в виде двоичной дроби с избыточными битами (и округлять для восстановления точности при выходе из процессора)
- или по другому кодировать десятичное число в битный код (тогда или делать программную реализацию операций над числом, или перед передачей процессору/после обработки перекодировать из нашего кода в процессорный/наоборот)


 
Тимохов ©   (2004-07-02 18:45) [88]


> Igorek ©   (02.07.04 18:42) [87]

я еще не ушел :))

поймите, что таких типов полно - тот же tdecimal, currency.
они кодируют точно!

также поймите, что есть разные задачи - есть математика, есть финансы - везде свои потребности.

вы представляете насколько будет более ресурсоемкий тип с иным кодированием числа?

В общем имхо вы пляшете не с того конца - задача определяет реализацию.

Теперь точно ушел :)


 
Igorek ©   (2004-07-02 18:47) [89]


> begin...end ©   (02.07.04 18:36) [85]
> Симптоматично - э... - в каком смысле?

Ну во-первых многое в мире программирования делается недостаточно основательно (что поделать, задачи сложные, а мы живые люди - иногда мозгов не хватает). А во-вторых часто встречается костность мышления, шаблоны, стандарты которые вдолбили в школе, институте. Это мышление непросто побороть.


 
Igorek ©   (2004-07-02 18:50) [90]


> Тимохов ©   (02.07.04 18:45) [88]

"Постой, не уходи, мы ждали лета - пришла зима". :-)))


> поймите, что таких типов полно - тот же tdecimal, currency.
> они кодируют точно!
> также поймите, что есть разные задачи - есть математика,
> есть финансы - везде свои потребности.
> вы представляете насколько будет более ресурсоемкий тип
> с иным кодированием числа?

Так надо всегда давать юзеру выбор. В данном случае он имхо неполный.


 
Григорьев Антон ©   (2004-07-02 21:41) [91]


> Igorek ©   (02.07.04 18:42) [87]
> Т.е. для нормальной реализации Real надо:
> - или представлять в виде двоичной дроби с избыточными битами
> (и округлять для восстановления точности при выходе из процессора)
> - или по другому кодировать десятичное число в битный код
> (тогда или делать программную реализацию операций над числом,
> или перед передачей процессору/после обработки перекодировать
> из нашего кода в процессорный/наоборот)


Есть формат, поддерживаемый FPU. Вы совершенно правильно заметили - код никак не обрабатывает эти числа. Отсюда и быстродействие. Как только появится дополнительная обработка, быстродействие резко снизится. В статье я специально привёл цифру: программная обработка Real на отдельных операциях медленнее аппаратной обработки Extended примерно в сто раз.


> Так надо всегда давать юзеру выбор. В данном случае он имхо
> неполный.


На каждый чих не наздравствуешься. Если бы всё было сделано до нас, за что бы мы сейчас деньги получали? Delphi даёт практически полный доступ к возможностям процессора, а кому базовых возможностей процессора мало, может построить себе, как из кирпичей, новые типы и операции с ними. Или, вместо тупого сравнения, использовать более адекватные средства с округлением. Для программиста всё это не составляет труда, а для юзера - так юзеру вообще делать нечего со средой разработки приложений, не для юзеров такие штуки. Извините за философское отступление, но жаловаться на нехватку чего-то в Delphi - это всё равно что жаловаться на то, что булки на деревьях не растут. Руки есть - сам вырастишь хлеб, уберёшь, испечёшь. Голова есть - сам напишешь библиотеку, которая сделает всё, что нужно.


 
Огромное Кулясищще ©   (2004-07-02 22:21) [92]

Да, есть дело. Вот создал NailMan серьёзную ветку, а прибежали ламера (в моём понимании), ещё и меня обматерили и в общем так ничего не вышло.


 
Igorek ©   (2004-07-05 10:56) [93]

2 Григорьев Антон ©   (02.07.04 21:41) [91]
Вау, сам автор пожаловал вниманием. Приятно. И приятно услышать конструктивные замечания, а не ...


> Есть формат, поддерживаемый FPU. Вы совершенно правильно
> заметили - код никак не обрабатывает эти числа. Отсюда и
> быстродействие. Как только появится дополнительная обработка,
> быстродействие резко снизится.

А как насчет:
> > - или представлять в виде двоичной дроби с избыточными
> битами
> > (и округлять для восстановления точности при выходе из
> процессора)

Вроде решает проблему без ощутимой потери быстродействия. Т.е. легко реализовать и дать тот самый выбор юзеру. Именно юзеру - ибо все мы юзеры IDE и компилятора если отвлечся от высокопарных выражений на тему "настоящий программист" и т.д. :-)

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

Простите, но я немного не согласен. Если следовать вашей логике дальше, то и самой Дельфи настоящему программисту нафиг не надо. Зачем? Ассемблер "даёт практически полный доступ к возможностям процессора, а кому базовых возможностей процессора мало, может ...". Есть низкоуровневое, а есть высокоуровневое программирование. И в последнем ничего плохого даже без знания первого. Это как раз и есть "бросание компонентов на форму" и юзание Real без знания нюансов и граблей с битиками и процессором. И если разработчики IDE и компилятора на самом деле не дали полный набор средств для высокоуровневой разработки, то почему бы их немного не поругать. :-)


 
Sandman25 ©   (2004-07-05 11:33) [94]

[93] Igorek ©   (05.07.04 10:56)

- или представлять в виде двоичной дроби с избыточными
> битами
> > (и округлять для восстановления точности при выходе из
> процессора)

Всегда можно будет найти пример, чтобы система дала сбой при округлении. Например, R := 1/3; if R*3=1 then. О каких избыточных битах может идти речь??? Их бесконечное число должно быть :)

PS. Если имеется ввиду хранение числа в виде отдельно числителя и знаменателя, то пример будет другой:
R := sqrt(2);
if sqr(R)= 2 then


 
Григорьев Антон ©   (2004-07-05 12:38) [95]


> Простите, но я немного не согласен. Если следовать вашей
> логике дальше, то и самой Дельфи настоящему программисту
> нафиг не надо. Зачем? Ассемблер "даёт практически полный
> доступ к возможностям процессора, а кому базовых возможностей
> процессора мало, может ...". Есть низкоуровневое, а есть
> высокоуровневое программирование. И в последнем ничего плохого
> даже без знания первого. Это как раз и есть "бросание компонентов
> на форму" и юзание Real без знания нюансов и граблей с битиками
> и процессором. И если разработчики IDE и компилятора на
> самом деле не дали полный набор средств для высокоуровневой
> разработки, то почему бы их немного не поругать. :-)


Я тоже прошёл через это: считал, что не хватает того, другого, третьего... А потом, когда стал тесно общаться с людьми, понял, что у каждого список того, другого и тертьего свой. И если взять и все эти списки объединить, то объём того, что надо реализовать, превысит все разумные пределы. Вот я, например, в своё время достаточно много использовал вещественные числа для моделирования физических процессов, но там свои погрешности, гораздо большие, чем даже при использовании Single. Поэтому для меня не имело никакого значения то, что число представляется округлённо. И более точный тип вещественных чисел мне не нужен. И то же самое, я думаю, могут сказать ешё очень многие программисты. Так что не стоит думать, что ваш личный список того, чего не хватает в Delphi, встретит понимание у других программистов.


 
VMcL ©   (2004-07-05 12:48) [96]

>>Sandman25 ©   (05.07.04 11:33) [94]

В любом случае, достаточно попросить точно записать число Пи или е  :-)


 
DiamondShark ©   (2004-07-05 15:18) [97]


> Igorek ©   (02.07.04 18:42) [87]
> - или представлять в виде двоичной дроби с избыточными битами
> (и округлять для восстановления точности при выходе из процессора)

Никаких избыточных бит не хватит для представления, к примеру, числа 0.7


> - или по другому кодировать десятичное число в битный код
> (тогда или делать программную реализацию операций над числом,
> или перед передачей процессору/после обработки перекодировать
> из нашего кода в процессорный/наоборот)

А оно и кодируется "по другому". В исходнике. Запись "0.7" в ASCII виде точная. Я вот не пойму никак, какие проблемы решит перенос перекодировки из "нашей" в "процессорную" с момента компиляции на момент исполнения?


 
Юрий Зотов ©   (2004-07-05 16:34) [98]

С темой ветки абсолютно согласен. Это действительно очень грустно - когда человек, никогда не разрабатывавший процессоры и сопроцессоры, никогда не писавший ОС и компиляторов, и даже никогда не программировавший серьезных математических расчетов - так вот, когда такой человек берется судить о кривизне реализации floating-point в Delphi, а заодно берется ругать Borland, Microsoft и Intel впридачу.

"Грусно - до чего же ламерство окрепло..."
© Igorek


 
Огромное Кулясищще ©   (2004-07-05 16:41) [99]

Однако, однако. Моё мнение таково, что с темой про Real подвело то, что информация о таких "неточностях" мало где представлена (как справедливо было замечено в статье, предлагаемой в той ветке). Скажем, я готов принять Real и таким, ведь он до сих пор прекрасно справлялся с задачей, но я просто хотел бы почитать об этом в той же справке по F1.


 
Тимохов ©   (2004-07-05 16:50) [100]


> но я просто хотел бы почитать об этом в той же справке по
> F1.

а про двоичное представление челых чисел вы тоже хотите почитать в справке? :)) А может справка дельфи должна рассказывать что такое двоичная система счисления?
:)))

А если серьезно, в штаном хелпе дельфи четко описано какие биты в числа с пл. точкой за что отвечают. Что еще надо?


 
Palladin ©   (2004-07-05 16:51) [101]

Мда... Однако придиратся к велосипеду по поводу не прухи по лестнице достаточно смело...


 
Тимохов ©   (2004-07-05 16:55) [102]


> Palladin ©   (05.07.04 16:51) [101]

класс


 
Igorek ©   (2004-07-05 17:02) [103]


> Sandman25 ©   (05.07.04 11:33) [94]
> Всегда можно будет найти пример, чтобы система дала сбой
> при округлении. Например, R := 1/3; if R*3=1 then. О каких
> избыточных битах может идти речь??? Их бесконечное число
> должно быть :)

Нет, тут вы батенька спутали праведное с грешным. Мы говорим о числах, представимых в виде конечной десятичной дроби. Т.е. о нормальном десятичном числе с плавающей точкой (дальше ДЧсПТ). 1/3 таковым не является. А 0.3 - является.


> DiamondShark ©   (05.07.04 15:18) [97]
> Никаких избыточных бит не хватит для представления, к примеру,
> числа 0.7

Хватит. Смотрите.
Пусть нам надо реализовать ДЧсПТ с точностью до одного знака после запятой. Для удобства возьмем только числа меньше 1. Итак таких чисел (0.0 ... 0.9) - 10 штук. Сколько надо бит, чтобы закодировать 10 чисел? Правильно - 4. Причем 6 вариантов будут лишними. Теперь возмем любое число с одним знаком после запятой и представим его в виде приближенной двоичной дроби по такой таблице:
(0000) = 0 - 0
(0001) = 0,0625 - 0
(0010) = 0,125 - 0,1
(0011) = 0,1875 - 0,1
(0100) = 0,25 - 0,2
(0101) = 0,3125 - 0,3
(0110) = 0,375 - 0,3
(0111) = 0,4375 - 0,4
(1000) = 0,5 - 0,5
(1001) = 0,5625 - 0,5
(1010) = 0,625 - 0,6
(1011) = 0,6875 - 0,6
(1100) = 0,75 - 0,7
(1101) = 0,8125 - 0,8
(1110) = 0,875 - 0,8
(1111) = 0,9375 - 0,9

Эти (в первой колонке) числа пусть процессор и считает.
А после выхода из процессора применим обратное преобразование.


 
Юрий Зотов ©   (2004-07-05 17:07) [104]

> Огромное Кулясищще ©   (05.07.04 16:41) [99]

> информация о таких "неточностях" мало где представлена

Она широко представлена (и подробнейшим образом разжевана) в книгах по азам программирования. Только, конечно, не в тех, где описан процесс таскания компонентов по форме (или процесс нажимания кнопок в IDE), а по азам именно ПРОГРАММИРОВАНИЯ. Полагаю, это есть даже в школьном учебнике информатики.

Поэтому ее и нет в справке Delphi. Справка по Delphi описывает работу с Delphi, но не учит (и не должна учить!) ОБЩИМ основам программирования. Точно так же, в учебнике по матанализу Вы не найдете таблицу умножения. Ее там нет и быть не должно, ибо это азбука математики.

Но даже не в этом дело. Ведь каждый из нас чем-то занимался, а чем-то не занимался, что-то знает, а чего-то не знает, для кого-то что-то просто, а для кого-то непросто... и т.д. Все это совершенно нормально и вовсе не в этом дело.

Дело в том, что, не обладая даже начальными знаниями в какой-то области, человек берется судить о том, что в этой области хорошо и что плохо, как в ней должно быть и как не должно быть, берется судить ведущие мировые фирмы (даже не подумав о том, кто он в данной области есть по сравнению с разработчиками этих фирм), берется спорить с теми, кто разбирается в этой области на пару порядков лучше...

Вот в чем дело-то.

"Грусно - до чего же ламерство окрепло..."
© Igorek


 
Огромное Кулясищще ©   (2004-07-05 17:08) [105]

>а про двоичное представление челых чисел вы тоже хотите почитать в справке? :)) А может справка дельфи должна рассказывать что такое двоичная система счисления?

Я знало, что кто-то так ответит и пожалел, что не уточнило. Я бы желало видеть в хелпе строчечку, типа: "Note that due to проблемы предствления вещественных чисел в двоичной системе, запись 0.7 is asctually 0.7000002. Read books for example".


 
Sandman25 ©   (2004-07-05 17:09) [106]

[103] Igorek ©   (05.07.04 17:02)

Это типа

00 = 0   -0.25
01 = 0.25-0.50
10 = 0.50-0.75
11 = 0.75-1.00

?
Тогда 01+10 будет либо 11 (0.77=0.26+0.51), то 100 (1.23=0.49+0.74).
И где однозначность?


 
Igorek ©   (2004-07-05 17:12) [107]


> Юрий Зотов ©   (05.07.04 16:34) [98]

Послушайте Юрий. Почему Вы такой злой? :-)
Ну мы же все люди. РАЗНЫЕ заметьте люди. У каждого свое мнение. Если я ошибаюсь - поправьте меня. Но по сути, а не ЛМД и тому подобное. И что плохого, что я высказал свое мнение? Будь оно хоть трижды неправильное. Ну не совсем же бред несу? Согласитесь.
Нам что всем сложить ручки и молиться "Слався Борланд, слався Майкрософт, славься Интел... Ибо воистину мудро вы реализовали FPU". Не вижу ничего ламерского в том, что бы покритиковать немного. Ну и заодно самому разобраться. И с людьми потолковать.
---
Про двоичные дроби впервые узнал собственно в этой статье. :-)))
Но это ничего не меняет.


> Это действительно очень грустно - когда человек, никогда
> не разрабатывавший процессоры и сопроцессоры, никогда не
> писавший ОС и компиляторов, и даже никогда не программировавший
> серьезных математических расчетов - так вот, когда такой
> человек берется судить о кривизне реализации floating-point
> в Delphi

Мне что свою ОС написать? Тогда я буду иметь право ругать глюки винды?


 
Sandman25 ©   (2004-07-05 17:12) [108]

Igorek

А вообще, переходите на LISP. AFAIR, там реализована возможность использования десятичных чисел с произовльной разрядностью. Никаких погрешностей, даже при делении :)


 
Огромное Кулясищще ©   (2004-07-05 17:17) [109]

>Она широко представлена (и подробнейшим образом разжевана) в книгах по азам программирования. Только, конечно, не в тех, где описан процесс таскания компонентов по форме (или процесс нажимания кнопок в IDE), а по азам именно ПРОГРАММИРОВАНИЯ. Полагаю, это есть даже в школьном учебнике информатики.

А у нас в школе информатики не было, а книг по информатике я даже в продаже не видел (а в библиотеку не хожу - не уважаю). Это, конечно, не нормально, но такие вот дела. В книжках, которые совмещают компонентотаскание и обучение языку таких ньансов не дают.

>Дело в том, что, не обладая даже начальными знаниями в какой-то области, человек берется судить о том, что в этой области хорошо и что плохо, как в ней должно быть и как не должно быть, берется судить ведущие мировые фирмы (даже не подумав о том, кто он в данной области есть по сравнению с разработчиками этих фирм), берется спорить с теми, кто разбирается в этой области на пару порядков лучше...

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


 
vuk ©   (2004-07-05 17:18) [110]

to gorek ©   (05.07.04 17:12) [107]:
>Слався Борланд, слався Майкрософт, славься Интел... Ибо воистину
>мудро вы реализовали FPU
При чем здесь реализация FPU?


 
Sandman25 ©   (2004-07-05 17:19) [111]

[109] Огромное Кулясищще ©   (05.07.04 17:17)

Зря Вы библиотеками не пользуетесь. "думать, развиваться - это же очень хорошо." (c) Огромное Кулясищще :)


 
Тимохов ©   (2004-07-05 17:27) [112]


> Igorek ©   (05.07.04 17:12) [107]

ничего плохого в вашем мнении нет.
одно плохо - вам уже несколько раз сказали, что ваше суждение поспешно, а вы туда же - лмд, лмд, мнения своего нетрадиционного высказать нельзя, что за ламеры.


 
Огромное Кулясищще ©   (2004-07-05 17:29) [113]

2 Sandman25:

Я люблю книги, но идти записываться в библиотеку (слово платить не звучит, это не фактор), брать книгу на время - это не по мне (к тому же, на родном языке выбор всё меньше и меньше). Я искал в продаже именно небольшие книиги по информатике для старшеклассников, где эти азы объясняются, а нашёл фундаментальные труды, которые по цене и по объёму мне не осилить :(((. ИМХО действительно, хотя бы строчечку в хелпе надо бы чиркануть.


 
Sandman25 ©   (2004-07-05 17:30) [114]

[113] Огромное Кулясищще ©   (05.07.04 17:29)

Вообще-то, я имел в виду посидеь в библмиотеке часок, полистать книжки. Брать их домой необязательно.


 
Огромное Кулясищще ©   (2004-07-05 17:31) [115]

>Вообще-то, я имел в виду посидеь в библмиотеке часок, полистать книжки. Брать их домой необязательно.

Часок посидеть - это вряд ли. Это сложновато. Да и не суть, на компонентах вполне уживаюсь. Я теперь их не только перебрасываю, но и перекидываю.


 
Sandman25 ©   (2004-07-05 17:33) [116]

>Часок посидеть - это вряд ли. Это сложновато

Для основ информатики - самое оно.

>Я теперь их не только перебрасываю, но и перекидываю.

Главное - чтобы не разбились при падении.


 
Igorek ©   (2004-07-05 17:58) [117]


> Тимохов ©   (05.07.04 17:27) [112]
>
> > Igorek ©   (05.07.04 17:12) [107]
>
> ничего плохого в вашем мнении нет.
> одно плохо - вам уже несколько раз сказали, что ваше суждение
> поспешно, а вы туда же - лмд, лмд, мнения своего нетрадиционного
> высказать нельзя, что за ламеры.

Ошибаетесь. Не "ваше суждение поспешно", а "дурак, врун, лмд, орешник ...". Это две большие разницы. И кто не обосновав кидается заявлениями второго рода - самый что ни на есть ламер для меня (уж извините).
Наверно вам нужно побыть на моем месте, что бы это понять.


 
Тимохов ©   (2004-07-05 18:03) [118]


> Наверно вам нужно побыть на моем месте, что бы это понять.

если вы правда не являетесь никем из вторых кавычек, то через некое время, если интерес к программированию не угаснет в вашей голове, вы скажете всем кто считал вас кем-то из вторых кавычек (и ошибся) огромное спасибо.


 
Юрий Зотов ©   (2004-07-05 18:05) [119]

> Igorek ©   (05.07.04 17:12) [107]

> Почему Вы такой злой? :-)

Я не злой. Я грустный. А почему - Вы уже сами ответили.

> Ну мы же все люди. РАЗНЫЕ заметьте люди. У каждого свое
> мнение.


Действительно, люди мы все разные. И надо быть ОЧЕНЬ нескромным человеком, чтобы учить физика физике, если сам знаешь эту самую физику лишь в пределах трех законов Ньютона. То что мы все разные - хорошо. То, что мы разные еще и в этом - скверно.

> Если я ошибаюсь - поправьте меня. Но по сути, а не ЛМД и
> тому подобное.


Вас пытаются поправить несколько человек, причем уже во второй ветке. Им это не удается. И мне не удастся, поэтому я даже и не пытаюсь. Просто говорю о том, что мне грустно все это читать.

Впрочем... если пожелаете прислушаться...

Прежде всего - задумайтесь, а почему сделано именно так, а не иначе? Что важнее в сложных математических расчетах: 20-й знак, или скорость вычислений? В каких случаях? Каков процент случаев, где точность важнее скорости и наоборот? Почему в подавляющем большинстве случаев повседневной жизни нас вполне устраивают 3-4 значащие цифры, а обычная точность технических расчетов - 5-6?

После этого возьмите уравнение в частных производных (пусть даже одиночное, не систему) и запрограммируйте его решение. Двумя способами - обычным и тем, что Вы предлагаете. И оба результата сравните с точным аналитическим решением.

Во-первых, Вы сразу увидите, что Ваш способ все равно бесполезен (потому что существует такое понятие, как точность метода и обычно она не выше точности вычислений). Во-вторых, сравните время счета - и Вы поймете, что при расчете по Вашему способу человечество еще не полетело бы в космос - компьютер все еще считал бы траекторию полета.

Почитайте книжки по численным методам, поговорите с людьми, кто ими занимался, попрограммируйте интегралы и диффуры - вот тогда Вы поймете что такое арифметика с плавающей точкой. Почему и зачем появилась такая штука, как BCD, когда она полезна и когда вредна. Когда Extended бывает хуже, чем Double и зачем вообще может быть нужен Single. Вот тогда и высказывайтесь по поводу того, как плохо в Delphi все это сделано. Но не раньше - не смешите людей.

> И что плохого, что я высказал свое мнение? Будь оно хоть
> трижды неправильное.

Ничего плохого в этом нет. Плохо не это, а то, о чем я написал в [104].

> Ну не совсем же бред несу? Согласитесь.

Увы, не соглашусь.

> Нам что всем сложить ручки и молиться "Слався Борланд, слався
> Майкрософт, славься Интел... Ибо воистину мудро вы реализовали
> FPU".

Молиться не надо. А вот быть немного скромнее - не помешало бы.

> Не вижу ничего ламерского в том, что бы покритиковать немного.

Когда два спеца критикуют друг друга - это нормально. Когда спец критикует не спеца - это тоже нормально. А когда Вы критикуете Borland, Microsoft и Intel, причем по вопросам, в которых, извините, по сравнению с ними ни фига не смыслите - вот это как раз ламерство и есть, самое натуральное.

> Ну и заодно самому разобраться. И с людьми потолковать.

Вот Вы бы СНАЧАЛА разобрались, а ПОТОМ критиковали. И тогда все было бы нормально. А не грустно.


 
Тимохов ©   (2004-07-05 18:18) [120]


> Юрий Зотов ©   (05.07.04 18:05) [119]

я в восторге.
класс.


 
DiamondShark ©   (2004-07-05 18:26) [121]


> Когда Extended бывает хуже, чем Double

Кстати, а когда?


 
Sha ©   (2004-07-05 18:47) [122]

Грущу вместе со всем прогрессивным человечеством.


 
Тимохов ©   (2004-07-05 18:49) [123]


> Sha ©   (05.07.04 18:47) [122]

Да забейте :)))
Он издевается - своего рода развлечение.
В последнем высказывании вместе с высказываем про begin+end я уверен не 100%. :))))))


 
Тимохов ©   (2004-07-05 18:51) [124]

блин, руки кривые :))

> Да забейте :)))
> Он издевается - своего рода развлечение.
> В последнем высказывании вместе с высказываем про begin+end
> я уверен на 100%. :))))))


 
Юрий Зотов ©   (2004-07-05 19:06) [125]

> DiamondShark ©   (05.07.04 18:26) [121]

1. Память. В численных расчетах довольно часто приходится хранить большие массивы вычислений.

2. Скорость. Для скорости "родной" тип (со)процессора всегда лучше. Правда, FPU x87 можно переключить на Extended, но и в этом случае остаются такие вещи, как выборка, пересылка и пр. Их скорость зависит от реализации (с деталями которой я не знаком), но общее правило для "неродных" для памяти данных такое - чем длиннее данные, тем больше время их чтения/записи.

3. Как ни странно, но может быть и точность. Погрешность расчета складывается из погрешности метода и ошибок округления, причем последние при длинных цепочках вычислений имеют тенденцию накапливаться (в результате чего погрешность многократно возрастает). Так вот, может получиться так, что при Double накопления не будет (ошибочные знаки усекаются), а при Extended - будет, причем ошибка накопления перейдет в довольно-таки старшие разряды. В итоге, как это ни странно, при Double количество верных знаков может оказаться даже больше чем, при Extended.

Когда я впервые столкнулся п.3 на практике, был просто поражен. Cпасло только то, что тогда не было Интернета, а ругать производителей процессора и компилятора перед зеркалом было менее интересно, чем читать книжки. Вот в них-то я и нашел объяснение такому странному феномену. Причем, как это обычно и бывает, оказалось, что всем, кроме меня, он давным-давно известен, что им всерьез занимались профессиональные математики, что ими разработаны методики оценки погрешности при разной разрядности - и прочая, и прочая.


 
Nous Mellon ©   (2004-07-05 19:19) [126]

Спасибо Антону Григорьеву за классную статью. Вникал полдня правда, но не зря..


 
Anatoly Podgoretsky ©   (2004-07-05 19:29) [127]

Тимохов ©   (05.07.04 18:49) [123]
И не сомневайся, он последнее время очень требовал Юрия, где Юрий хочу над ним поиздеваться, поругаться :-)


 
Тимохов ©   (2004-07-05 19:31) [128]


> Anatoly Podgoretsky ©   (05.07.04 19:29) [127]

тогда выход один - ignore...
imho


 
Igorek ©   (2004-07-05 20:05) [129]


> Anatoly Podgoretsky ©   (05.07.04 19:29) [127]
> Тимохов ©   (05.07.04 18:49) [123]
> И не сомневайся, он последнее время очень требовал Юрия,
> где Юрий хочу над ним поиздеваться, поругаться :-)

Следите за словами, уважаемый. :-)))
Я никогда не говорил, что хочу "поиздеваться, поругаться".


 
Igorek ©   (2004-07-05 20:59) [130]


> Юрий Зотов ©   (05.07.04 18:05) [119]


> Я не злой. Я грустный. А почему - Вы уже сами ответили.

Ну я говорил о себе. И грустим мы по разным поводам. :-)

> Вот Вы бы СНАЧАЛА разобрались, а ПОТОМ критиковали. И тогда
> все было бы нормально. А не грустно.

Ну а я что сделал?!!! :-)
Вы сказали прочитать статью - я прочитал. Мнения не изменил. Теперь вы мне предлагаете еще туеву хучу работы выполнить. Я конечно прислушаюсь частично и обдумаю ваши слова.

Ладно не будем спорить. Очевидно мы расходимся по принципиальным вопросам. Останемся при своих.

> Sandman25 ©   (05.07.04 17:09) [106]
> Тогда 01+10 будет либо 11 (0.77=0.26+0.51), то 100 (1.23=0.49+0.74).
> И где однозначность?

Да, хороший пример. Правда мы говорили о представлении, а не об операциях. Но я подумаю над этим.


 
Юрий Зотов ©   (2004-07-06 10:51) [131]

> Igorek ©   (05.07.04 20:59) [130]

>> Вот Вы бы СНАЧАЛА разобрались, а ПОТОМ критиковали. И тогда
>> все было бы нормально. А не грустно.

> Ну а я что сделал?!!! :-)

Вы сделали ровно наоборот. СНАЧАЛА начали критиковать ведущих мировых производителей железа и софта, а уж ПОТОМ прочитали статью (в подтверждение могу привести ссылку на первоначальную ветку, но вряд ли в этом есть необходимость).

Причем есть подозрение, что эта статья пока что единственный прочитанный Вами материал по сабжу - а ведь на эту тему (и смежные с ней) чуть ли не целая наука имеется.

> Вы сказали прочитать статью - я прочитал. Мнения не изменил.

И немудрено. Чтобы понять, с чем едят floating-point, одной статьи маловато будет. Да и ручками не помешало бы пощупать, на практике.

> Теперь вы мне предлагаете еще туеву хучу работы выполнить.

Я не предлагаю. Я просто говорю, что иначе нормально въехать в тему просто нельзя. Не получится. Не хотите - не въезжайте, дело Ваше - но тогда уж посовеститесь, ради Бога, высказываться по поводу Borland, Microsoft и Intel.

> Я конечно прислушаюсь частично и обдумаю ваши слова.

И к ним могу добавить, что совершенно не хотел как-то уязвить Вас лично. Речь идет о явлении (к сожалению), которое Вы же обозначили в сабже.

Yours faithfully,
Yuri S. Zotov
:о)


 
Тимохов ©   (2004-07-06 10:59) [132]

Игорек, огромная просьба - не возражайте Юрию - прислушайтесь к тому, о чем он говорит. Поверьте, таким шагом вы способны вернуть мнение окружающих о себе в нормальное, конструктивное русло (если это, конечно, вам важно :)))


 
Dok_3D ©   (2004-07-06 12:27) [133]

Просмотрел эту ветку...
Согласен с Igorek в главном:
Согласен в том, что то, что нижеприведенный цикл не завершается никогда - это математическое безобразие. Кто виноват? Наверное, немножко можно поругать Борланд. Можно и не ругать, можно просто Igorek"а поругать, гораздо проще.

var
I: Real;
begin
I := 0;
repeat
  I := I + 0.1
until I = 0.3;
end;


 
Юрий Зотов ©   (2004-07-06 12:36) [134]

> Dok_3D ©   (06.07.04 12:27) [133]

> Кто виноват?

Не Igorek. И не Борланд. Математика виновата. Ее и ругайте.


 
Sandman25 ©   (2004-07-06 12:40) [135]

[133] Dok_3D ©   (06.07.04 12:27)

Ругать нужно программиста, который выбрал неверный тип для представления данных. Если нужна стопроцентная точность операций, то и тип нужно выбирать соответствующий, обеспечивающий эту самую точность.


 
Dok_3D ©   (2004-07-06 13:08) [136]

Угу, программиста из Борланд.
Шутка.


 
Григорьев Антон ©   (2004-07-06 13:11) [137]

Разработчиков процессора ругать надо! Эти ламеры не смогли разработать процессор с поддержкой чисел бесконечной точности!


 
Игорь Шевченко ©   (2004-07-06 13:13) [138]

http://www.prodeathrave.com/Q209354%20-%20HOWTO.htm


 
Mystic ©   (2004-07-06 13:19) [139]

О погрешности начинают говорить на уроках физики в школе. Может стоит начать оттуда?


 
вразлет ©   (2004-07-06 13:31) [140]

Юрий Зотов ©

Педагогический талант налицо


 
Sha ©   (2004-07-06 13:39) [141]

> Dok_3D ©   (06.07.04 12:27) [133]
> Согласен с Igorek в главном:
> Согласен в том, что то, что нижеприведенный цикл не завершается
> никогда - это математическое безобразие. Кто виноват?
> Наверное, немножко можно поругать Борланд. Можно и не ругать,
> можно просто Igorek"а поругать, гораздо проще.

А кто здесь виноват?

var
  I: integer;
begin
  I := 0;
repeat
  I := I + 16
until I = 37;
end;


 
GuAV ©   (2004-07-06 13:44) [142]

>Хватит. Смотрите.
Идея имеет права на жизнь. но такой велик уже изобрели - это currency.

>Итак таких чисел (0.0 ... 0.9) - 10 штук
А отсюда начинается бред. и далее

>(1010) = 0,625 - 0,6
>(1011) = 0,6875 - 0,6

Два разных кода - одно значение?

>А после выхода из процессора
"Это как же Вашу мать извиняюсь понимать?" (с)

Хоть я и сам ламер, но

===
LMD


 
Dok_3D ©   (2004-07-06 13:52) [143]

2 Sha ©

Я вас умоляю... Неудачнейшая аналогия.
Мистик тут про школу вспомнил, так вот там говорили, что
0 + 0.1 + 0.1 + 0.1 = 0.3,
и
0 + 16 + 16 + 16 <> 37.

А ламеры должны умереть, это без сомнений.


 
GuAV ©   (2004-07-06 13:53) [144]


> Игорь Шевченко ©   (06.07.04 13:13) [138]
> http://www.prodeathrave.com/Q209354%20-%20HOWTO.htm


офигительно конкретная урла. мне понравилось. только у них баг:
>If you have problems understanding the information, read it again. Repeat until
>enlightenment is achieved.
цикл while true do - худшее, что можно сделать

********
Сжалились как то над одним ламером, расшифровали ему RTFM.
"Причем здесь это" удивился он. Но Камасутру прочитал.


 
Anatoly Podgoretsky ©   (2004-07-06 14:06) [145]

Dok_3D ©   (06.07.04 13:52) [143]
Это же правило действет и для плавающей запятой, но проблема в том что 0,1 невозможно представить, и согласно этому же правилу
0,100000001 + 0,100000001 + 0,100000001 <> 0.3


 
Igorek ©   (2004-07-06 14:38) [146]


> Юрий Зотов ©   (06.07.04 10:51) [131]

Спасибо. Как говориться "век живи - век учись".
Кстати, вы давеча спрашивали "Почему именно я вас так раздражаю? Задумайтесь наконец!". Так вот я подумал. Вы мне симпатичны. Режете правду-матку открытым текстом. Без обиняков. Уважаю я это в людях. Так что скорее мне с вами приятно спорить.


> Тимохов ©   (06.07.04 10:59) [132]
> Игорек, огромная просьба - не возражайте Юрию - прислушайтесь
> к тому, о чем он говорит. Поверьте, таким шагом вы способны
> вернуть мнение окружающих о себе в нормальное, конструктивное
> русло (если это, конечно, вам важно :)))

Прислушаюсь. Поверьте.
И еще. Прожили б вы с мое, то на мнение окружающих вам бы было глубоко наплевать скорее всего.

И вообще друзья есть такая штука как предвзятое мнение. Прехреновейшая штука скажу я вам. Меня тоже часто поражает.
Боремся по мере сил. Чего и вам желаю.

> >Итак таких чисел (0.0 ... 0.9) - 10 штук
> А отсюда начинается бред. и далее

LMD.

> >(1010) = 0,625 - 0,6
> >(1011) = 0,6875 - 0,6
>
> Два разных кода - одно значение?

Еще раз внимательно перечитайте весь пост.

> >А после выхода из процессора
> "Это как же Вашу мать извиняюсь понимать?" (с)

Буквально.

> Григорьев Антон ©   (06.07.04 13:11) [137]
> Разработчиков процессора ругать надо! Эти ламеры не смогли
> разработать процессор с поддержкой чисел бесконечной точности!

Глупо ругать разработчиков "конечного" механизма, за нереализацию обработки бесконечного по колл. информации числа.
Кстати я и не ругал. Речь о другом.

> Anatoly Podgoretsky ©   (06.07.04 14:06) [145]
> Dok_3D ©   (06.07.04 13:52) [143]
> Это же правило действет и для плавающей запятой, но проблема
> в том что 0,1 невозможно представить, и согласно этому же
> правилу

Невозможно, невозможно... Читайте внимательно мои посты.

---
Устал спорить.


 
Sandman25 ©   (2004-07-06 14:43) [147]

[146] Igorek ©   (06.07.04 14:38)

Вы мне симпатичны. Режете правду-матку открытым текстом. Без обиняков. Уважаю я это в людях

Тут противоречие ИМХО. Когда я дал вполне полный выбор (полный в смысле множеств - несовместные события с суммарной вероятностью 1), Вы обиделись :)


 
Тимохов ©   (2004-07-06 14:47) [148]


> Устал спорить.

вот и славненько


 
Тимохов ©   (2004-07-06 14:47) [149]


> Устал спорить.

вот и славненько


 
Тимохов ©   (2004-07-06 14:50) [150]

Анатолий Подгорецкий!
Вы прочли внимательно посты Игорька? Нет?
Да как вы вообще вступать в разговор с ним смеете?!!!

:)


 
Igorek ©   (2004-07-06 15:01) [151]

Уффф...


> Sandman25 ©   (06.07.04 14:43) [147]
> [146] Igorek ©   (06.07.04 14:38)
>
> Вы мне симпатичны. Режете правду-матку открытым текстом.
> Без обиняков. Уважаю я это в людях
>
> Тут противоречие ИМХО. Когда я дал вполне полный выбор (полный
> в смысле множеств - несовместные события с суммарной вероятностью
> 1), Вы обиделись :)

Ну во-первых в чем конкретно противоречие? Ю.З. говорит правду. Вы - нет. Причем он говорит о том, что знает, а вы - о том чего не знаете. Я о "читал/не читал".
Во-вторых вы не дали "полный выбор" в чистом виде. Он бы звучал примерно так "Игорек или читал или не читал" - чистая правда. Вы из каждого события из всех возможных вывели обидный вывод. Сечете разницу?

> Тимохов ©   (06.07.04 14:50) [150]

Мне помощники не нужны. :-)


 
DiamondShark ©   (2004-07-06 15:02) [152]


> Игорь Шевченко ©   (06.07.04 13:13) [138]
> http://www.prodeathrave.com/Q209354%20-%20HOWTO.htm

Я плакал...


 
Anatoly Podgoretsky ©   (2004-07-06 15:03) [153]

Никаких Personal Support только на дискуссионной основе.


 
GuAV ©   (2004-07-06 15:07) [154]


> > >(1010) = 0,625 - 0,6
> > >(1011) = 0,6875 - 0,6
> >
> > Два разных кода - одно значение?
>
> Еще раз внимательно перечитайте весь пост.

Вот у тебя каким-то образом A=(1010) B=(1011), тогда A=B - false, а ведь они равны. т.е. это _НЕ_ решение проблемы.

> LMD.

LOL. Когда споришь с дураком, он делает то же самое.


 
Тимохов ©   (2004-07-06 15:10) [155]


> Anatoly Podgoretsky ©   (06.07.04 15:03) [153]

Это вы о чем?


 
Sandman25 ©   (2004-07-06 15:10) [156]

[151] Igorek ©   (06.07.04 15:01)

Имеем полное множество: читал и не читал. Если не читал, то лгун.
Если читал, то либо понял, либо не понял. Опять полное множество. Судя по тому, что потом написал, не понял. Будете спорить, что поняли, но не согласны? Если почти(?) все читатели поняли и согласились, а один не понял или не согласен, то он либо невнимательно читал, либо неспособен понять. Поэтому я и написал о полном множестве (дурак/врун) и переспрашивал о статье. По-моему, все вполне логично...


 
Тимохов ©   (2004-07-06 15:11) [157]


> Мне помощники не нужны. :-)

Как не нужны?!?!?!

В нелегком деле ламериды одному не выстоять!!!


 
Тимохов ©   (2004-07-06 15:13) [158]


> . По-моему, все вполне логично...

ошибаетесь, коллега, самое слабое у вас место: все согласны, а один нет.

вывод может быть и такой - все ламеры (я, вы, и прочие), а вот один нет (гений, одно слово).

:)


 
Sandman25 ©   (2004-07-06 15:17) [159]

[158] Тимохов ©   (06.07.04 15:13)

Да, теоретически это возможно.


 
Тимохов ©   (2004-07-06 15:20) [160]


> Да, теоретически это возможно.

эх вы, Игорек уже целых 159 постов пытается втолковать, что это именно так, а вы все не понимаете.

:))


 
Sandman25 ©   (2004-07-06 15:24) [161]

[160] Тимохов ©   (06.07.04 15:20)

Это потому что я либо врун, либо дурак, либо тоже гений :)


 
Игорь Шевченко ©   (2004-07-06 15:41) [162]


> Это потому что я либо врун, либо дурак, либо тоже гений
> :)


Пора вступать в The Church of The Subgenuis - A mutant offshoot of Discordianism. (http://www.subgenius.com/) :)


 
Igorek ©   (2004-07-06 19:25) [163]


> Если читал, то либо понял, либо не понял. Опять полное множество.
> Судя по тому, что потом написал, не понял. Будете спорить,
> что поняли, но не согласны? Если почти(?) все читатели поняли
> и согласились, а один не понял или не согласен, то он либо
> невнимательно читал, либо неспособен понять. Поэтому я и
> написал о полном множестве (дурак/врун)

Подмножество (посылка-вывод) для "читал":
не понял - невнимательно читал
не согласен - неспособен понять

Во-первых более чем поверхностные выводы.
Во-вторых события не взаимоисключающие.
В-третьих события не описывают весь набор возможностей (безотносительно к "во-вторых").

А вам не приходил в голову вариант, что остальные попросту не поняли моих речей? С чего сделали поспешный вывод, что я не понял статью.

> Тимохов ©   (06.07.04 15:13) [158]
> ошибаетесь, коллега, самое слабое у вас место: все согласны,
> а один нет.
>
> вывод может быть и такой - все ламеры (я, вы, и прочие),
> а вот один нет (гений, одно слово).

Ошибаетесь коллега. Не все согласны...


 
Огромное Кулясищще ©   (2004-07-06 19:50) [164]

Э-э, ну дайте и мне, Огромному Кулясищщу влезть. А как же там обстоят дела с fixed-point типами? Раз такой вал получается, то надо бы поднять стандарт, плюнуть на 2-4 байта.


 
Тимохов ©   (2004-07-06 19:52) [165]

так он никогда не уймется :(((


 
Anatoly Podgoretsky ©   (2004-07-06 21:44) [166]

Огромное Кулясищще ©   (06.07.04 19:50) [164]
Там все нормально, по модулю 10, а не 2. Абсолютная точность. Но предел точности в АДА есть натуральные дроби. Там даже деление единичы на три и затем умножение на 3 дает единицу.


 
Rouse_ ©   (2004-07-06 22:09) [167]

> [17] begin...end ©   (02.07.04 15:25)
> Просто навешивание LMD уже поднадоело.

Вообщето с этой заразой, а именно развешиваньем ярлыков LMD борятся как минимум 2 модератора :)
Так что не бойся - мы с тобой :)


 
Огромное Кулясищще ©   (2004-07-06 22:14) [168]

Anatoly Podgoretsky ©   (06.07.04 21:44) [166]
Так это же практически фантастиш. Вот только объясните, что значит: "Но предел точности в АДА есть натуральные дроби." и почему это плохо. И как же тогда использовать эти чудо-типы в Delphi?


 
Palladin ©   (2004-07-06 22:23) [169]

Самому организовать... или воспользоватся уже написанным, наверняка тема какой нибудь курсовой у кого нибудь была... и это не плохо, это во первых медленней, а во вторых при использовании данных где нибудь в не тобой написанном ПО придется дробь всетаки поделить :)


 
Anatoly Podgoretsky ©   (2004-07-06 22:25) [170]

В Дельфи нет поддержки натуральных дробей, писать надо самому. Точность абсолютная, скорость низкая. В АДА это на уровне языка или библиотек, не помню точно, лет 10 ее не видел.


 
Cobalt ©   (2004-07-06 23:35) [171]

2 Огромное Кулясищще ©   (06.07.04 22:14) [168]

> что значит: "Но предел точности в АДА есть натуральные дроби." и почему это плохо.
А это значит, что будут проблемы с числами, невыразимыми через дроби: e, Pi, lg, ln, корни, натуральные числа (если не ошибаюсь, именно у них нет делителей)


 
Palladin ©   (2004-07-06 23:48) [172]

Иррациональными они зовутся...


 
QuasiLamo ©   (2004-07-06 23:59) [173]

по сабжу...
да нисколько... я в последнее время даже захворал маленько :)))


 
Огромное Кулясищще ©   (2004-07-07 00:23) [174]

>А это значит, что будут проблемы с числами, невыразимыми через дроби: e, Pi, lg, ln, корни, натуральные числа (если не ошибаюсь, именно у них нет делителей)

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

Ну а я вообще говорил не об обыкновенных дробях, а именно о том, что часть до запятой выражается неким Integer и часть после запятой выражается неким Integer. Думается, так можно представить любое число, однако ламеримся мы на диапазоне, и тратим память, но да может фиг с ней?


 
jack128 ©   (2004-07-07 00:29) [175]


> часть до запятой выражается неким Integer и часть после
> запятой выражается неким Integer.
и что? мы только потеряем в точности..


 
Огромное Кулясищще ©   (2004-07-07 00:30) [176]

А да, не подумал про реализацию хоть того же сложения. Будет происходить переполнение. Тогда надо уменьшать на одну цифру. Да, отстойно будет.


 
Огромное Кулясищще ©   (2004-07-07 00:35) [177]

>и что? мы только потеряем в точности..

А мы уже потеряли.

Ну или типа такого: Int64 - знаковый, если сделать беззнаковым, то 2^63 станет ещё больше. Если в 4-байтовом LongWord мы можем впилить 9 знаков (10-ый как раз на overflow - 999999999*2 влезет, но не знаю, как с Int64), то в беззнаковом Int64 (придумываю) сможем и больше (лень считать, сколько). И так с каждой стороны. Ну, конечно, 8+6 = 16, минус сколько то на обозначение знака, минус на удобство операций. Ну бедт тебе 15 цифр в обе стороны, но очень точно.


 
jack128 ©   (2004-07-07 00:52) [178]


> то 2^63 станет ещё больше.
ну да, станет 2^64..

> LongWord мы можем впилить 9 знаков (10-ый как раз на overflow
> - 999999999*2
диапозон LongWord"a - 0..4294967295  под "переполнение" нечего не надо резервировать. Для учета переполнения есть спец флаг в процессоре..

> Ну бедт тебе 15 цифр в обе стороны, но очень точно.
короче все это называается числа с фиксированой точкой. И вообще - не страдай маразмом, а почитай как устроен тип Currency...


 
Огромное Кулясищще ©   (2004-07-07 01:10) [179]

>диапозон LongWord"a - 0..4294967295  под "переполнение" нечего не надо резервировать. Для учета переполнения есть спец флаг в процессоре..

Ага, и как же ты запишешь десять 9-ок в LongWord? Суть в том. Допустим, мы складываем два числа:

1,999 + 1,999

Допустим, используем чудо-тип, аж 10 знаков. Тады:

0000000001,9990000000 + 0000000001,9990000000

Сначала складываем дробную часть:

0,9990000000 + 0,9990000000 = 1,9980000000

Т.е. нам не хватает цифры, если мы делаем впритык. А если бы у нас была эта цифра, то мы просто вычли бы из числа 19980000000 число 10^10, записали разность в дробную часть, а целую часть увеличили бы на единицу.

Курренсия, конечно, круто, но свои мысли лучше. Да и где я почитаю? Да и не буду.


 
GuAV ©   (2004-07-07 01:13) [180]


> и что? мы только потеряем в точности..

смотря где.
названия Real и Currency ни с чем не ассоциируются? У меня первый с техническими рассчетами, второй с бабками.


 
Думкин ©   (2004-07-07 07:03) [181]

> [170] Anatoly Podgoretsky ©   (06.07.04 22:25)
> В Дельфи нет поддержки натуральных дробей, писать надо самому.

Писал такое. Использовал для аналитического выражения дробно-рациональной апрксимации. Но проблем там действительно много.
Например посчитать элементарное:
1+1/2+1/3+1/4+1/5+.....1/1000 - уже выражение значительное будет в итоге, а ведь это еще мелочи.

А по сабжу: Для того чтобы быть оригинальным вовсе не надо специально оригинальничать на всем не попадя, иногда достаточно много и плодотворно работать в какой-нибудь области. Знания и труд дают истинную оригинальность, а не пописывание против любого ветра.


 
Думкин ©   (2004-07-07 07:25) [182]

Обсуждение оригинального сложная штука.
1. А так ли уж оно оригинально?
2. А стоит ли первое пришедшее в голову выплескивать окружающим? Быть может полезно это переварить в себе - а потом и еще и до 10 досчитать.

Вот Ньютон был весьма оригинален, однако самое известное свое произведение не публиковал много лет. А Кнут?
Или вот еще - http://www.mccme.ru/edu/viarn/obscur.htm
Прочитайте, в середине про турбулентность. И как там - и оригинально, и спокойно.
Есть обсуждение, а в основной массе обсуждение "оригинального" - как раз в большей степени треп ламеров и втянутых "поневоле".
Вот статьи в научные журналы пишет много народу, их надо рецензировать. Очень часто это "оригинальные" ламерские статьи. И вот кто-то теряет время дабы написать рецензию на это нечто, а вот автор терять своего времени не хотел и даже не изучил хорошо вопрос. Это хорошо?
Помните указ Парижской Академии Наук о вечных двигателях? Это как раз о ламерах. Вначале постарайсмя с пользой потратить свое время, прежде чем призывать других тратить их время. Так наверное.


 
Cobalt ©   (2004-07-07 08:41) [183]

2 Огромное Кулясищще ©   (07.07.04 01:10) [179]
> Курренсия, конечно, круто, но свои мысли лучше. Да и где я почитаю? Да и не буду.

Ээх, я думал, что ты, может быть, действительно Кулясищще, а ты, а ты...
Отстоище ты!
Учиться, учиться и ещё раз учиться! (До полного просвещения!!!)


 
Sandman25 ©   (2004-07-07 09:08) [184]

[182] Думкин ©   (07.07.04 07:25)

У меня была курсовая работа с заданием решения степенных уравнений произвольной степени. С трудом нашел книгу 1907 года издания (в библиотеке :), в которой описывался алгоритм решения. Реализовал его с помощью real, но при больших степенях (30 и даже чуть меньше), была большая погрешность - формула была хоть и аналитическая, но с длинными рекурсивными расчетами. Заменил тип на extended, получилось не намного лучше, скорость сильно упала. Тогда решил написать свой тип, в виде дроби с числителем и знаменателем типа comp. Наивный, думал, что поможет. Переполнение знаменателя, пришлось во время операций анализировать операнды и иногда заменять дроби приблизительными, с меньшими знаменателями. С тех пор мне стало ясно: алгоритм в математике - это одно, алгоритм в машинной реализации - совсем другое :)

[163] Igorek ©   (06.07.04 19:25)

Если "дурак - это тот, кто выражается так, что другой его не понимает", то мне надоело чувствовать себя дураком. Еще раз извиняюсь за свои высказывания и прекращаю спорить.


 
Тимохов ©   (2004-07-07 09:24) [185]


> Sandman25 ©   (07.07.04 09:08) [184]


> и прекращаю спорить.

вот и прекратите - он же не уймется, если его слово не последнее будет :))))


 
Sha ©   (2004-07-07 10:07) [186]

> Тимохов ©   (07.07.04 09:24) [185]

А это мысль: для любителей спорить организовать ветку "Последнее слово за мной" :)


 
Sandman25 ©   (2004-07-07 10:10) [187]

[186] Sha ©   (07.07.04 10:07)

Лучше конференцию. Я сделаю первую ветку :)


 
Тимохов ©   (2004-07-07 10:18) [188]


> Sha ©   (07.07.04 10:07) [186]

Максим будет счастлив от многомегабайтного отстоя, который ему придется хранить и обрабатывать :))))


 
Юрий Зотов ©   (2004-07-07 10:59) [189]

> Думкин [181]
> Думкин [182]

Браво! В самую точку!


 
Max Ivanych ©   (2004-07-07 11:05) [190]

Нас вместо обычных численных методов обучали интервальным. То, что я оттуда вынес - нельзя ни от машин, ни от моделируемого объекта требовать 100% точности. Результат высиления, измерения ли - интервал.


 
Igorek ©   (2004-07-07 11:19) [191]


> Юрий Зотов ©   (07.07.04 10:59) [189]
> > Думкин [181]
> > Думкин [182]
>
> Браво! В самую точку!

Неплохо. Правда аналогии не корректны. Здесь не научный журнал и никто не заставляет писать рецензию (читать ветку/отвечать).


 
Тимохов ©   (2004-07-07 11:23) [192]

181 и 182 - действительно очень по сабжу :)))
Юрий, спасибо, что обратили внимание - сам прочел :))))


 
Baron ©   (2004-07-07 11:25) [193]

Sha ©  (07.07.04 10:07) [186]
Поддерживаю.


 
Думкин ©   (2004-07-07 11:32) [194]

> [191] Igorek ©   (07.07.04 11:19)

В чем то да, но ряд примеров.
Ведь Ньютон на свою работу не требовал рецензий. Но тем не менее почему-то весьма серьезно относился к публикации. А спешить надо было, ведь потом у них напряжение с Лейбницем на этом и возникло (кажется так).
Со статьями. Ученые по разному их публикуют. Одни мало, другие много, у многих они пустые, у других нет. Все в разных пропорциях. Но 2 резко видимых класса есть:
1. Пишет много и звонко, но пусто
2. Пишет мало, но качественно.
А почему? А потому, что второй не статью пишет, а излагает результаты своих трудов, и ему именно это важно. Тогда как второму важно иметь обширный список публикаций и не более того. По мне - пусть будет меньше, да лучше. Так и тут. Вопрос был выеден. И надо просто его утрясти, подумать и...если есть предложить, даже в рамках статьи тут.
Вот недавно ты заводил ветку о прослойке в БД. Потом закрыл ветку сос ловами - сделал, кому надо вышлю. Многих ветка зацепила, но все ушло в пшик.
Почему бы свои результаты не оформить в статью и не поместить здесь? Это было бы гораздо интереснее, чем наблюдать ничем, пока во всяком случае, не подкрепленную "оригинальность". И все, большего и не надо.


 
Igorek ©   (2004-07-07 12:41) [195]

Кстати не мог бы мне кто-то дать ссылки на уроки Юрия Зотова.
Нашел только семинар Анатолия Подгорецкого - урок 1
http://www.delphikingdom.com/lyceum/seminar.asp?partID=4&LessonID=11

Также на Королевстве Дельфи нашел такое: "Уже почти готовы уроки для начинающих Юрия Зотова".
Но кто-то говорил, что они уже есть в Интернете.
Спасибо.


 
Igorek ©   (2004-07-07 12:55) [196]


> Вот недавно ты заводил ветку о прослойке в БД. Потом закрыл
> ветку сос ловами - сделал, кому надо вышлю. Многих ветка
> зацепила, но все ушло в пшик.
> Почему бы свои результаты не оформить в статью и не поместить
> здесь? Это было бы гораздо интереснее, чем наблюдать ничем,
> пока во всяком случае, не подкрепленную "оригинальность".
> И все, большего и не надо.

Неплохая мысль. Правда со свободным временем туговато. Только на отдых в Потрепаться хватает. :-)
А сама реализация вполне тривиальна. Немудрено и дизайнерское решение. А для статьи надо потестить это дело на разных БД, для чего писать мост на каждую... Времени пока нету.
Короче если и написать солидную статью, то в соавторстве.

---
В рецензенты пригласил бы Юрия Зотова. При его согласии конечно. Имхо лучше критика я не знаю.
---
Всем кого заинтересовала тема о мостах и окнах будет наверно интересно почитать ее обсуждение здесь:
http://www.rsdn.ru/Forum/Message.aspx?mid=699407


 
Тимохов ©   (2004-07-07 13:04) [197]


> Всем кого заинтересовала тема о мостах и окнах будет наверно
> интересно почитать ее обсуждение здесь:
> http://www.rsdn.ru/Forum/Message.aspx?mid=699407

меня это заинтересовало по следующей причине: посмотреть, в чем Вы еще с общественностью не согласны :)))

Посмотрел, очень впечатляет.
Особенно зрелость взглядов оппонентов и полнае ваше игнорирование оных :)))

Успехов.


 
Igorek ©   (2004-07-07 13:08) [198]


> Тимохов ©   (07.07.04 13:04) [197]

- Ну и дуб вы Василий Иванович
- Да Петька, крепок еще

---
;-|


 
Igorek ©   (2004-07-07 13:10) [199]


> Тимохов

Кстати мнение о вас у меня уже сложилось. Не лучшее.


 
Тимохов ©   (2004-07-07 13:13) [200]


> - Ну и дуб вы Василий Иванович

ну ясное дело, ламертво же уже окрепло.
куда уж мне.

А если серьезно: прислушайтесь к мнениям:
1. Стандарты у всех разные. Не все поддреживают стандрат sql. Это факт.
2. Клиент может быть по-настоящему быть независимым от базы при наличии не просто моста (т.е. очередной прослойки), а при наличии серьезного сервера приложений с неизменным интерфесом доступа для клиента.

Я не стал это туда писать, т.к. это уже написано. Но мнение мое очень близко к этому. Сам этим занимаюсь.


 
Тимохов ©   (2004-07-07 13:15) [201]


> Кстати мнение о вас у меня уже сложилось. Не лучшее.


думаете это меня занимает?

с вами пообщаться одно удовольствие: дмитрий олегович уже со своими ортодоксальными заявлениями уже сник, а вот вы на высоте :)))


 
Igorek ©   (2004-07-07 15:08) [202]


> Тимохов ©   (07.07.04 13:13) [200]


> 1. Стандарты у всех разные. Не все поддреживают стандрат
> sql. Это факт.

Перечитайте мой последний пост там.

> 2. Клиент может быть по-настоящему быть независимым от базы
> при наличии не просто моста (т.е. очередной прослойки),
> а при наличии серьезного сервера приложений с неизменным
> интерфесом доступа для клиента.

Что значит "по настоящему"?
Ну вот я реально уже написал мост на ADO. Работает. Осталась старая функциональность на TinyDB. Могу собственно тоже мост написать. И будет клиент работать с любой из баз. И знать не будет об их формате. Насколько "по настоящему" будет он независим?


 
Тимохов ©   (2004-07-07 15:19) [203]


> Что значит "по настоящему"?

Это значит: вы сможете создать документацию, согласно которой не только вы, но и другой человек, обладающей соответствующей квалификацией, сможет 1) перенести приложение на другую базу данных 2) сможет плодотворно развивать заложенную вами функциональность (вы, ведь как и я не бог, обязательно что-то забыли :))).

Пункт 2) важнее, т.е. 1) в условиях ограниченной функциональности все же реализовать можно.

У меня примерно похожая ситуация: есть клиент, который пользуется, как вы говорите мостом, пока, правда, к одной базе (ms sql), но не проблема построитель запросов перевести на другой синтаксис. Знаю точно, что это без проблем можно сделать с ораклом. Но!!! Кроме меня и еще пары человек развивать данный "мост" вряд ли кто сможет.

Кстати, пункт 2) был замечен вам одним из собеседников в указанном топике форума rsdn. Подумайте...

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


 
Igorek ©   (2004-07-07 17:40) [204]

Ладно, наверно будем заканчивать. Итак мозолит глаза людям название ветки уже который день.

Остается подвести итог:
- у каждого человека свои представления о ламерстве
- какими бы они не были, надо стараться быть обьективним, не грубить, вчитываться и стараться понять что говорит оппонент, если непонятно - переспросить "мне тут непонятно, растолкуй(те)"
- в своих постах стараться нести "светлое, доброе, мудрое, умное ..."
- собственно не нарушать правила форума


 
Тимохов ©   (2004-07-07 17:42) [205]


> - у каждого человека свои представления о ламерстве

мы эту тему обсуждали чтобы ее выносить в итог?

ЗЫ
Давайте завязывать.
Мне просто любопытно, вы сможете оставить послднее слово не за собой или нет :)))


 
Igorek ©   (2004-07-07 17:53) [206]


> Тимохов ©   (07.07.04 17:42) [205]
> Мне просто любопытно, вы сможете оставить послднее слово
> не за собой или нет :)))

Вы подозреваете, что для меня это важно? Если да, то вы ошибаетесь. Можете проверить.
Кстати, а вы? ;-)))


> мы эту тему обсуждали чтобы ее выносить в итог?

Откройте отдельную ветку.


 
Тимохов ©   (2004-07-07 18:02) [207]

Есть такая детская игра (детский сад) - "кто простнуля в ж..е негра, отзовись".
Ничего не напоминает?

Вы кстати, хороший психолог :)
Поясню:
призыв

> Кстати, а вы? ;-)))

взывает "на слабо" и этом может вам далть возможность оставить последнее слово за собой :))) Тонко. Т.е. т.о. вы способны добится своего.


 
han_malign ©   (2004-07-07 18:05) [208]

а вы подеритесь...


 
Тимохов ©   (2004-07-07 18:07) [209]


> han_malign ©   (07.07.04 18:05) [208]
> а вы подеритесь...

да ладно вам - не часто всретишь такой интересный объект для общения :)))


 
ДедушкаКо ©   (2004-07-07 18:10) [210]

н-да, это не ран-тайм пакеты, тут мы кузькину мать :)


 
Igorek ©   (2004-07-07 18:17) [211]


> Тимохов ©   (07.07.04 18:02) [207]
> Есть такая детская игра (детский сад) - "кто простнуля в
> ж..е негра, отзовись".
> Ничего не напоминает?
>
> Вы кстати, хороший психолог :)
> Поясню:
> призыв
>
> > Кстати, а вы? ;-)))
>
> взывает "на слабо" и этом может вам далть возможность оставить
> последнее слово за собой :))) Тонко. Т.е. т.о. вы способны
> добится своего.

Вы лучший психолог чем я. Ибо я не думал о том, что вы сказали, когда писал это. Мне было действ. просто тоже интересно.

---
Я не буду ничего домысливать и говорить, что ваш последний пост по каким-то придуманным мной соображениям написан для того, что б на него не было ответа.
---
Забавный диалог получается. :-))


 
han_malign ©   (2004-07-07 18:23) [212]

- Ну ты, козел!
- Это я то козел?!
- Да ты и на козла то не похож.
- Это я то не похож?!

- Спасибо.
- Пожалуста.
- Не умничай.
- Да пошел ты!
- Да уже в пути!


 
Тимохов ©   (2004-07-07 18:24) [213]

третьим будешь?


 
Igorek ©   (2004-07-07 18:33) [214]

- ты че?!!!
- я ниче...
- ну и все!!!


 
Anatoly Podgoretsky ©   (2004-07-07 19:18) [215]

Ну чего, вы кончили судя по анекдотам или это передышка.


 
хм ©   (2004-07-07 20:24) [216]

-ты кончил?
-нет.
-а я - да...

навеяно веткой Мазута



Страницы: 1 2 3 4 5 6 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 1.14 MB
Время: 0.04 c
6-1085294026
FireMan_Alexey
2004-05-23 10:33
2004.07.25
Socket -> Thread


1-1089617818
_none_
2004-07-12 11:36
2004.07.25
Application.OnIdle


1-1089605923
leonidus
2004-07-12 08:18
2004.07.25
Для чего в IDE нужна вкладка Diagram?


1-1089051990
Кастуся
2004-07-05 22:26
2004.07.25
Проверка стринги


1-1089574827
NailMan
2004-07-11 23:40
2004.07.25
Алгоритм форматирования текста "По ширине"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский