Форум: "Потрепаться";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
ВнизКалькулятор Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 1.57 MB
Время: 0.276 c