Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.07;
Скачать: CL | DM;

Вниз

Калькулятор   Найти похожие ветки 

 
GrayFace ©   (2004-08-02 10:36) [440]

УЖАС ! Никогда не думал, что наделаю столько ошибок. Это уже третья ошибка в возведении в степень. :(
http://www.grayface.chat.ru/Calk.zip

Юрий Зотов ©   (02.08.04 0:25) [437]
> Вот об этом и спор. Тут на примере калькулятора пытаются доказать, что теория на фиг не нужна.

Я не пытаюсь.


 
Думкин ©   (2004-08-02 10:46) [441]

Я дико извиняюсь, а что именно изменилось?
Два описанных мной бага - живы.
> [433] Думкин ©   (01.08.04 20:02)
> [438] Думкин ©   (02.08.04 05:49)


 
Anatoly Podgoretsky ©   (2004-08-02 10:50) [442]

http://delphimaster.net/view/14-1089499317/


 
Alx2 ©   (2004-08-02 10:52) [443]

>Думкин ©   (02.08.04 10:46) [441]
>Я дико извиняюсь

Давно мечтаю посмотреть как это выглядит :))


 
Anatoly Podgoretsky ©   (2004-08-02 10:52) [444]

Alx2 ©   (02.08.04 10:52) [443]
Про себя матом кроет.


 
Думкин ©   (2004-08-02 11:02) [445]

> [443] Alx2 ©   (02.08.04 10:52)

:))) А как еще тут? Только дико, - нового-то пока тютю. Да и подержки от других не вижу, пишут и пишут уже 4,5 часа.


 
Nous Mellon ©   (2004-08-02 11:11) [446]


>  [441] Думкин ©   (02.08.04 10:46)

Видимо началось соревнование: кто найдет больше багов :)
> Я не пытаюсь.

Ну вот уже отказываться начали. Скоро скажем что Юрий Зотов все подстроил и заставил всех писать калькулятор?


 
Anatoly Podgoretsky ©   (2004-08-02 11:29) [447]

Nous Mellon ©   (02.08.04 11:11) [446]
А разве нет, двое пишут, третий обещал.

Вот он змей в окне маячит
За спиною тестер прячет


 
Alx2 ©   (2004-08-02 11:36) [448]

>Anatoly Podgoretsky ©   (02.08.04 11:29) [447]
>А разве нет, двое пишут, третий обещал.

А кто третий?


 
Думкин ©   (2004-08-02 11:41) [449]

> [448] Alx2 ©   (02.08.04 11:36)

Спросил он испуганно? :)

Вроде не ты. Да и ты не калькулятор писал. Что-то у меня к тебе ася не прорывается, ко всем идет, а к тебе нет. :(


 
Alx2 ©   (2004-08-02 11:48) [450]

>Думкин ©   (02.08.04 11:41)
>Спросил он испуганно? :)

Ага :))

>Что-то у меня к тебе ася не прорывается,
>ко всем идет, а к тебе нет. :(

Сеть у нас неустойчиво работает что-то


 
Nous Mellon ©   (2004-08-02 12:28) [451]


> А разве нет, двое пишут, третий обещал.

Эээ. А разве я что то не так сказал?
Я это и имел в виду


 
Alx2 ©   (2004-08-02 12:31) [452]

>Nous Mellon ©   (02.08.04 12:28) [451]

А кто третий? :)


 
Nous Mellon ©   (2004-08-02 12:59) [453]


> А кто третий? :)

Может Murkt?


 
parovoZZ ©   (2004-08-02 13:03) [454]


> Вот он змей в окне маячит
> За спиною тестер прячет


Ну как, готова мечта мелкософта?)) Пока я только вижу генератор багов. Уже выходные прошли. А ветка на докторскую поди потянет. Нобеля может дадут?


 
Cobalt ©   (2004-08-02 14:45) [455]

Нобеля - не Нобеля, но если не сделает - Шнобель начистют (хотя бы и виртуально :)


 
Mihey_temporary ©   (2004-08-02 14:58) [456]

>Ну как, готова мечта мелкософта?)) Пока я только вижу генератор багов. Уже выходные прошли. А ветка на докторскую поди потянет. Нобеля может дадут?

Никто же не сидит ночами и не пишет. Есть время - пишут, нет времени - не пишут.


 
GrayFace ©   (2004-08-02 20:22) [457]

Думкин ©   (01.08.04 6:23) [420]
> По этой сслыкее у меня ругается на отсутствие узла и прочие проблемы и не качает:
> http://www.grayface.chat.ru/Calk.zip

Думкин ©   (02.08.04 10:46) [441]
>Я дико извиняюсь, а что именно изменилось?
> Два описанных мной бага - живы.

[433] умер. [438] - не баг, а фича:
(1.1).1=(1.1)*0.1=0.11
1.(1.1)=1.0*(1.1)=1.1
А вот баг из [441] живет.
Внимание, All, если не работает http://www.grayface.chat.ru/Calk.zip, заходите на http://www.grayface.chat.ru, а оттуда берите Calk.zip

Nous Mellon ©   (02.08.04 11:11) [446]
> Я не пытаюсь.

>Ну вот уже отказываться начали. Скоро скажем что Юрий Зотов все подстроил и заставил всех писать калькулятор?

Я говорил, что тралить большую часть времени на теорию бессмысленно. Это не значит, что теория не нужна.


 
Mihey_temporary ©   (2004-08-02 23:39) [458]

2 Юрий Зотов:

>Более того, мне кажется, что проанализировав алгоритм любого написанного без теории строчного калькулятора, всегда можно будет составить выражение, которое этот алгоритм не способен вычислить уже в самом своем принципе. То есть, указать выражение, полностью опровергающее сам алгоритм.

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


 
Думкин ©   (2004-08-03 06:12) [459]

> [458] Mihey_temporary ©   (02.08.04 23:39)

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

> [457] GrayFace ©   (02.08.04 20:22)
Фича не фича, но пугает такое.


 
Юрий Зотов ©   (2004-08-03 09:12) [460]

> Mihey_temporary ©   (02.08.04 23:39) [458]

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

Угу. Правда, есть одна небольшая проблемка - эти правила в компьютер надо еще как-то ввести. Вот в этом "как-то" все дело и есть.


 
Igorek ©   (2004-08-03 10:45) [461]

Рискну нарваться на обвинение в "писании против ветра". LOL
Только вот был бы ветер. А то так - сквозняки...
Также прошу прощения, если данный подход уже был в ветке.

Итак забудем всякие грамматики и тому подобное.
Упростим также выражения для ясности идеи.
Пусть в выражениях фигурируют только целые числа, +-*/(). Запись префиксная.
Попробуем реализовать тот алгоритм, который обычно использует человек, когда вычисляет такое выражение.
Итак, понятно, что сначала вычисляем то что в скобках. Также следуем приоритету операций.

Вкратце идея состоит в том, что-бы вычислять то, что надо вычислить в первую очередь и заменить кусок исходной строки на число.
Т.е. сначала ищем первую открывающую скобку, после которой нету открывающей. Потом ищем следующую закрывающую. Имеем подстроку. Для вычисления ее найдем первый знак * или /. От этого знака пройдем влево и вправо и найдем числа для операции. Снова имеем подстроку. Вычислим значение. Заменим им подстроку. Повторяем процесс, пока не останется только + или -. Повторим процесс пока останется только число. Заменим им подвыражение в скобках - раскроем скобки. Повторяем процесс, пока скобок не останется. Потом вычислим то что осталось со знаками */+- (см. выше).
Итого в конце получим значение.

---
Можно конечно все оформить в виде набора функций вычисления разных типов выражений и рекурсивных их вызовов. Можно и без рекурсии.

---
Можно еще упростить...


 
Игорь Шевченко ©   (2004-08-03 10:46) [462]


> Пусть в выражениях фигурируют только целые числа, +-*/().
> Запись префиксная.


Префиксная - этот как ? Пример, плз


 
Anatoly Podgoretsky ©   (2004-08-03 10:56) [463]

Юрий Зотов ©   (03.08.04 09:12) [460]
Без теории, тогда три поля ввода Операнд1 оператор Операнд2

Игорь Шевченко ©   (03.08.04 10:46) [462]
+ A B


 
GrayFace ©   (2004-08-03 11:11) [464]

Igorek ©   (03.08.04 10:45) [461]
Такой подход использовал Михей. Результат - на лице. :))


 
Игорь Шевченко ©   (2004-08-03 11:21) [465]

Anatoly Podgoretsky ©   (03.08.04 10:56) [463]

Она же польская не обратная.


 
False_Delirium ©   (2004-08-03 12:48) [466]

2GrayFace Степень страдает и страдает.
http://rsdn.ru/article/alg/fastpow.xml

Посмотрел калькулятор.
Код "дикий", другого слова не смог подобрать. Наверное GrayFace хочет прибраться в коде после написания программы, раз не сделал во время.

GrayFace, создай ветку "Разбор полётов" и помести туда свой код, откроется ещё одна долгоиграющая тема.:)


 
Sha ©   (2004-08-03 12:56) [467]

Igorek ©   (03.08.04 10:45) [461]

Лет так 10 назад попробовал 3 варианта
1. Твой (поиск и раскрытие скобок) Igorek ©   (03.08.04 10:45) [461]
2. Нисходящий парсер наподобии Ertong ©   (25.07.04 19:56) [30]
3. Обратная польская запись.

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


 
NeyroSpace ©   (2004-08-03 14:13) [468]

Запускаем Calc.exe -> инженерный
Вычислите 2 плюс 2 умножить на 2.
Так что правим баги и пишем конкурента! :-)


 
NeyroSpace ©   (2004-08-03 14:15) [469]

т.е. не инженерный а обычный :-)


 
Рамиль ©   (2004-08-03 14:15) [470]


> Вычислите 2 плюс 2 умножить на 2.

Получается 6. Должно быть что то другое?


 
Рамиль ©   (2004-08-03 14:16) [471]


> т.е. не инженерный а обычный :-)

Получается 8. Должно быть что то другое?


 
NeyroSpace ©   (2004-08-03 14:18) [472]

опс я тормознул...


 
Anatoly Podgoretsky ©   (2004-08-03 14:30) [473]

NeyroSpace ©   (03.08.04 14:13) [468]
Читай выще ветки, сказано, что это два разных калькулятора в одно упаковке, строчный (инженерный) и простой по операторный

2+(2*2) и (2+2)*2 результаты соответвуют


 
Anatoly Podgoretsky ©   (2004-08-03 14:35) [474]

И еще одна особенность, у него очень высокая точность - 32 значащих разряда!!!

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


 
Думкин ©   (2004-08-03 14:37) [475]

> [474] Anatoly Podgoretsky ©   (03.08.04 14:35)
Надо написать новый для 33 разрядов. Даешь арбайтен по стахановски за 5 часов.


 
Anatoly Podgoretsky ©   (2004-08-03 14:45) [476]

Для начала пусть 18-20 сделают


 
parovoZZ ©   (2004-08-03 14:58) [477]

Ну а что Вы хотите? Пусть пишут. На ошибках учатся. А сколько не смотри на играющего пианиста играть всёравно не научишся.


 
Igorek ©   (2004-08-03 14:59) [478]


> Игорь Шевченко ©   (03.08.04 10:46) [462]
> > Пусть в выражениях фигурируют только целые числа, +-*/().
> > Запись префиксная.
> Префиксная - этот как ? Пример, плз

Знак операции над двумя операндами стоит между ними. Напр. "2+2".
Впрочем я могу ошибиться - если так, то поправьте.
Просто по аналогии с постфиксной, когда сначала идут оператора, заносятся в стек, а потом операции вытаскивают два из стека и результат пишут в тот же стек.


 
Sandman25 ©   (2004-08-03 15:03) [479]

[478] Igorek ©   (03.08.04 14:59)

Это инфиксная.


 
Игорь Шевченко ©   (2004-08-03 15:21) [480]


> Знак операции над двумя операндами стоит между ними. Напр.
> "2+2".
> Впрочем я могу ошибиться - если так, то поправьте.


Толкование слова "префикс" ни о чем не говорит ?



Страницы: 1 2 3 4 5 6 7 8 9 
10 11 12 13 14 15 16 17 18 
19 вся ветка

Текущий архив: 2004.11.07;
Скачать: CL | DM;

Наверх




Память: 1.59 MB
Время: 0.21 c
1-1098418745
Fynjy1984
2004-10-22 08:19
2004.11.07
Установка EhLib


1-1098431826
newh
2004-10-22 11:57
2004.11.07
Image со скроннигом


14-1098124208
Petia
2004-10-18 22:30
2004.11.07
Delete!!!


1-1098788125
Alexious
2004-10-26 14:55
2004.11.07
Массивы


3-1097470959
Tomkat
2004-10-11 09:02
2004.11.07
ADS Server