Форум: "Потрепаться";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
ВнизКалькулятор Найти похожие ветки
← →
Mihey_temporary © (2004-08-23 15:58) [640]
> Унарный плюс не может быть слагаемым. Унарный плюс - это
> только часть слагаемого. Из любой нормально составленной
> грамматики это сразу видно. И любой калькулятор, реализованный
> в строгом соответствии с такой грамматикой, проблем с подобными
> выражениями не испытывает. Пример - компилятор Delphi, который
> такие выражения понимает правильно.
... и ссылка на мат. справочник?
← →
Суслик © (2004-08-23 16:04) [641]о чем вы спорите?
Если о том, что без знания теории можно построить калькулятор, то согласен с обоими.
Если долго мучиться, что-нибудь получится. Если же знать теорию, то получится и быстрее и качественнее.
← →
Григорьев Антон © (2004-08-23 16:36) [642]
> Mihey_temporary © (23.08.04 15:58) [640]
> ... и ссылка на мат. справочник?
Это не в матсправочнике надо искать, а в учебниках по теории построения компиляторов. Например, здесь: http://www.delphikingdom.com/asp/book.asp?BookID=63
А ещё это видно из формальной грамматики Паскаля, ссылку на которую уже приводил Игорь Шевченко: http://www.moorecad.com/standardpascal/pascal.y
Более того, 1+++2 - тоже допустимое в рамках этой грамматики выражение :)) Трактуется как 1+(+(+(2)))
Лично я предлагаю следующие выводы:
1. Общепринятая грамматика - именно такая, независимо от того, нравится это кому-то или нет.
2. Если лично тебе такие выражения не нравятся, то реализовывать калькулятор без них - твоё право. Но только опиши непротиворечивую грамматику, которую будешь реализовывать. Тебе уже сто раз сказали, что без формального описания грамматики никто не знает, что есть фича, а что есть баг, но на тебя это, похоже, не действует.
← →
Mihey_temporary © (2004-08-23 18:22) [643]Похоже на вас не действует. Я писал калькулятор с той целью, чтобы он правильно считал математические выражения в том виде, в котором они записываются в реальной, не компьютерной, математической практике, известной любому со времён школы и начальных классов. Никакая грамматика не нужна. Всё. Не прикидывайся, что ты чего-то не понимаешь. Ты прекрасно понимаешь, можно ли писать ++1, можно ли писать .2 или 4.. Не надо прикидываться, всё. Вопрос закрыт окончательно и навеки вечные.
← →
Григорьев Антон © (2004-08-23 18:48) [644]
> Mihey_temporary © (23.08.04 18:22) [643]
Вопрос не закрыт, пока не приведена грамматика в нормальном виде. Ссылки на какие-то общепринятые школьные правила не пройдёт, потому что до тех пор, пока они не формализованы, всегда остаётся место для разночтений. Я, например, в школе не писал "1." и ".5", и мне лично эта запись очень глаз режет. А запись "1++2" мне глаз не режет, хотя я в школе так не писал. И сколько будет людей, столько будет мнений, пока вместо нормальной не допускающей разночтений грамматики мы будем аппелировать к каким-то невнятным школьным правилам, которые всяк волен трактовать по-своему.
Короче, я для себя вывод сделал: ты просто не способен сформулировать грамматику и написать анализатор, который чётко следует ей. И сам это прекрасно понимаешь, вот и пытаешься выкручиваться.
← →
nikkie © (2004-08-23 19:32) [645]>Не надо прикидываться, всё. Вопрос закрыт окончательно и навеки вечные.
похоже ты решил в непонятку сыграть. повторюсь.
1. пока нет четких правил, невозможно определить корректное выражение или нет. с моей точки зрения "1." - совершенно нормальное выражение. если твой калькулятор не принимает такое - твое право, но это должно быть четко описано. либо давай правила, либо отвечай на бесконечные вопросы, про каждое конкретное выражение. про "1." ты мне так и не ответил.
2. требования к калькулятору описаны в [603], см. также [613]. он не должен считать некорректные выражения, а должен идентифицировать ошибку пользователя.
3. в настоящий момент были указаны следующие ошибки (в виду описанных требований):
[588]
выражение: 1^^2
результат: Ошибка с кодом 002
выражение: 1^*2
результат: Ошибка с кодом 002
[626]
выражение: 2+1.
результат: 3
выражение: 1.+2
результат: Ошибка со знаками действий или разделителями! Проверьте правильность выражения!
либо одно, либо другое ошибка.
4. если ты желаешь продолжать, то ты должен исправить эти ошибки и выложить исходники. иначе считаем, что ты сдался.
>[629] GrayFace
>6^-2^-1 = "-" is not a valid integer value.
>6^(-2)^(-1) = "-" is not a valid integer value.
это поведение калькулятора Михея с длинной арифметикой. мы согласились, что возведение в степень не работает, поэтому тестируем только версия с обычной арифметикой.
← →
Mihey_temporary © (2004-08-23 19:49) [646]>Вопрос не закрыт, пока не приведена грамматика в нормальном виде. Ссылки на какие-то общепринятые школьные правила не пройдёт, потому что до тех пор, пока они не формализованы, всегда остаётся место для разночтений. Я, например, в школе не писал "1." и ".5", и мне лично эта запись очень глаз режет. А запись "1++2" мне глаз не режет, хотя я в школе так не писал. И сколько будет людей, столько будет мнений, пока вместо нормальной не допускающей разночтений грамматики мы будем аппелировать к каким-то невнятным школьным правилам, которые всяк волен трактовать по-своему.
Короче, я для себя вывод сделал: ты просто не способен сформулировать грамматику и написать анализатор, который чётко следует ей. И сам это прекрасно понимаешь, вот и пытаешься выкручиваться.
А может это ты не можешь найти баг и придираешься? Вопрос для меня ЗАКРЫТ. Так будут работать все последующие версии (специально в наказание вам).
2 nikkie:
Сегодня или завтра сдам версию без этих глюков.
← →
Рыба © (2004-08-23 20:48) [647]Не понял, кто, кому и что доказывает.
← →
VMcL © (2004-08-23 22:55) [648]>>Mihey_temporary © (23.08.04 19:49) [646]
ИМХО, критика Антона Григорьева и nikkie конструктивна, и я, например, с ней вполне согласен.
P.S.
Ох, останешься ты вечным `temporary`...
← →
GrayFace © (2004-08-24 17:09) [649]nikkie © (23.08.04 14:53) [635]
> тут ты неправ. степени вычисляются справа налево, а не
> слева направо, как остальные операции. и твой
> калькулятор считает двойное возведение в степень
> неправильно.
Сомневаюсь. Numlock Calkulator, виндовский инженерный, счетают, что 6^1^2=36. Я и моя спецификация тоже так счетаем.
Неявное умножение уберите сами - это константа на 29 строчке.
> Похоже на вас не действует. Я писал калькулятор с той
> целью, чтобы он правильно считал математические
> выражения в том виде, в котором они записываются в
> реальной, не компьютерной, математической практике,
> известной любому со времён школы и начальных классов.
Это, как раз, сделал я: неявное умножение, функции без скобок...
← →
Григорьев Антон © (2004-08-24 17:35) [650]
> Mihey_temporary © (23.08.04 19:49) [646]
> А может это ты не можешь найти баг и придираешься? Вопрос
> для меня ЗАКРЫТ. Так будут работать все последующие версии
> (специально в наказание вам).
Ой, боюсь, боюсь... :))
Ты одну простую вещь пойми: ты в конечном итоге не мне должен объяснить, какие выражения считать правильными, а компьютеру. А компьютер в школе не учился, для него не существует выражений, правильность или неправильность которых ему очевидна. И всё, что от тебя хотят - чтобы ты в формализованном виде записал то, чему ты собираешься учить компьютер. И если ты не понимаешь, насколько это важно - прими мои соболезнования.
← →
Mihey_temporary © (2004-08-24 17:40) [651]
> Ты одну простую вещь пойми: ты в конечном итоге не мне должен
> объяснить, какие выражения считать правильными, а компьютеру.
> А компьютер в школе не учился, для него не существует выражений,
> правильность или неправильность которых ему очевидна. И
> всё, что от тебя хотят - чтобы ты в формализованном виде
> записал то, чему ты собираешься учить компьютер. И если
> ты не понимаешь, насколько это важно - прими мои соболезнования.
Дубль три. Вы - домохозяйка. Вам нужен калькулятор в компьютере. Есть такой. Запускаем, пишем 1+(+0.5), жмём кнопку, читаем ответ, закрываем. Что вам ЕЩЁ от меня надо???
← →
GrayFace © (2004-08-24 18:21) [652]Григорьев Антон © (24.08.04 17:35) [650]
Ты одну простую вещь пойми: ты в конечном итоге не мне должен объяснить, какие выражения считать правильными, а компьютеру. А компьютер в школе не учился, для него не существует выражений, правильность или неправильность которых ему очевидна.
И с какой это стати что-то объяснять компьютеру?? Компьютер - это не собеседник, чтобы ему что-то объяснять. Он написал программу - чем не оьъяснение компу?
← →
Mihey_temporary © (2004-08-24 21:24) [653]Заявление: парсер калькулятора не верен в корне. Версию считать нерабочей.
← →
Mim1 © (2004-08-24 21:44) [654]Рационизировать и утилизировать. Тащите круглую печать.
← →
Думкин © (2004-08-25 06:22) [655]"А он че было, то и полюбила"
"Я сЕжу на берегу
не могу поднять ногУ
не ногУ а нОгу
блин, усе рано не могУ."
← →
GrayFace © (2004-09-01 18:03) [656]Не дадим ветке умереть!
← →
Mihey_temporary © (2004-09-01 18:51) [657]Никто не сдался. Спор продолжается.
← →
VMcL © (2004-09-02 10:44) [658]Не вижу нормально работающего сабджа, особенно, если учесть [653].
← →
Igorek © (2004-09-02 12:25) [659]Я в шоке. Да выложите вы сюда исходники. Надеюсь их не много.
← →
GrayFace © (2004-09-03 16:34) [660]VMcL © (02.09.04 10:44) [658]
Не вижу нормально работающего сабджа, особенно, если учесть [653].
Мой! Мой! И еще раз мой!
(Что мыть - сам не знаю)
← →
VMcL © (2004-09-03 17:28) [661]>>GrayFace © (03.09.04 16:34) [660]
Как-то лениво мне шесть сотен постов читать... ты эта... выложи ссылку на исходники со спецификацией входных выражений, может на выходные погоняю (на всякий случай: у меня D6).
P.S. Если доберусь до Delphi то "мыть" буду твой кальк по полной программе :o)
← →
GrayFace © (2004-09-05 08:14) [662]Ссылка на версию:
> если не работает http://www.grayface.chat.ru/Calk.zip,
> заходите на http://www.grayface.chat.ru, а оттуда берите
> Calk.zip
В нем есть неявное умножение(2pi, 2sin2, например), в связи с которым возникло много споров.
Чтобы отключить неявное умножение, измените константу EmptyMul на 29 строчке.
Спецификация с неявным умножением:<Empty> ::=
<Sign> ::="+"|"-"
<Digit> ::="0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"
<Operation1> ::="*"|"/"|Empty
<Operation2> ::="+"|"-"
<FunctionName>::="sin"|"cos"|"tg"|"ctg"|"arcsin"|"arccos"|"arctg"|"arcctg"
<exponent> ::="e"|"Е"
<Separator> ::="."|<DecimalSeparator>
<Number> ::={Digit}[Separator][{Digit}][<Exponent>[Sign]{Gigit}] | <Separator>{Digit}[<Exponent>[Sign]{Gigit}]
<function> ::=<FunctionName><operand>
<operand> ::=[{Sign}]<operand>|<number> | "pi" | <function> | "("<expression>")" | "|"<expression>"|"
<factor> ::=<operand>[{ "^" <operand>}]
<term> ::=<factor>[{<Operation1><factor>}]
<expression> ::=<term>[{<Operation2><term>}]
Без неявного умножения:<Operation1> ::="*"|"/"
← →
Mihey_temporary © (2004-09-05 12:05) [663]<Number> ::={Digit}[Separator][{Digit}][<Exponent>[Sign]{Gigit}] | <Separator>{Digit}[<Exponent>[Sign]{Gigit}]
:)
← →
GrayFace © (2004-09-06 15:35) [664]:)
← →
VMcL © (2004-09-06 17:50) [665]>>GrayFace © (05.09.04 08:14) [662]
Теперь уже на следующие выходные, раньше почти наверняка не смогу.
← →
Marser © (2004-09-12 02:19) [666]
> Nous Mellon © (31.07.04 23:15) [398]
>
> > Это показывает твою ничтожную культуру и лишний раз доказывает,
>
> > что твои сообщения на самом деле пусты и необоснованы.
>
> Нет. Это показывает что у тебя на форуме есть только враги.
> В том числе и я.
> А у меня полно друзей.
Сорри за оффтоп. Не сочти за наезд или подколку. Меня ты к друзьям причисляешь?
← →
Sergey Kaminski © (2004-09-12 03:31) [667]Ох, а я думал, что ихний калькулятор какой-никакой уже готов давно. А он, оказывается, все пишется и пишется, глюк за глюком устраняется :)
Авторам - зря в свое время не прислушались к Ю.З.
Им же: пора бы уже и признаться, что тот спор давно-о-о проигран. А то флейму уже на целое дьявольское число;)
(Кажется, вначале речь шла о нескольких часах, потом днях... вот до сих пор что-то упорно доказываем) :(
← →
Nous Mellon © (2004-09-12 08:32) [668]
> Сорри за оффтоп. Не сочти за наезд или подколку. Меня ты
> к друзьям причисляешь?
а как же :)
Ну бывает, конечно, ты иногда отчебучишь чего-нибудь, но мы же знаем что в душе ты хороший :)
← →
Mihey_temporary © (2004-09-12 13:57) [669]
> Sergey Kaminski © (12.09.04 03:31) [667]
Ищите баг в калькуляторе от Grayface.
← →
VMcL © (2004-09-12 13:57) [670]>>GrayFace © (05.09.04 08:14) [662]
[Unit1.pas: 06.08.2004, 14:50]
Глюков в функциональности не нашел (может плохо искал :)
Но вот как насчет ввести новую функцию? Скажем, понадобилось реализовать новую функциюcos2(x) = cos(x) + 20
. После того, как введешь вычисли такие выражения:cos2
cos2(2)
cos-2+1
← →
VMcL © (2004-09-12 13:59) [671]>>Mihey_temporary © (12.09.04 13:57) [669]
>VMcL © (12.09.04 13:57) [670]
LOL
← →
Marser © (2004-09-12 15:08) [672]
> Nous Mellon © (12.09.04 08:32) [668]
>
> > Сорри за оффтоп. Не сочти за наезд или подколку. Меня
> ты
> > к друзьям причисляешь?
>
> а как же :)
> Ну бывает, конечно, ты иногда отчебучишь чего-нибудь, но
> мы же знаем что в душе ты хороший :)
:-))
← →
GrayFace © (2004-09-12 18:42) [673]Sergey Kaminski © (12.09.04 3:31) [667]
Ну если бы я тестировал калькулятор не левой задней (чтобы поменьше времени потратить), все бы давно закончилось. Хотя уже 2 недели мой калькулятор ждет тестирования.
VMcL © (12.09.04 13:57) [670]
cos2 = Syntax error at offset 4
cos2(2) = 19,5838531634529
cos-2+1 = 0,583853163452858 - а при чем тут это?
По-моему вполне нормально, хоть и неоднозначно. Главное - неразрешимых коллизий нет. cos2 спокойно используется, а если надо взять cos(2), то надо писать скобки.
← →
Mihey_temporary © (2004-09-12 22:15) [674]
> LOL
А баги то где?
← →
VMcL © (2004-09-14 19:31) [675]>>GrayFace © (12.09.04 18:42) [673]
>а если надо взять cos(2), то надо писать скобки.
Перечитай свою же спецификацию. Скобки МОЖНО ставить, но НЕОБЯЗАТЕЛЬНО. Вот так вот.
>cos2(2) = 19,5838531634529
Понимаешь ли, спецификация калькулятора должна включать в себя таблицу приоритетов операций. У тебя её нет. Вот мне теперь интересно, как калькулятор в вышеприведенном случае "угадает", что я, как пользователь, захотел вычислить: функцию cos2 от аргумента "2" или удвоенный косинус от аргумента "2"?
← →
VMcL © (2004-09-14 19:32) [676]P.S.</>
>По-моему вполне нормально, хоть и неоднозначно.
А должно быть "адназначна" © сам знаешь
← →
VMcL © (2004-09-24 09:53) [677]>>GrayFace ©
Ку?
← →
GrayFace © (2004-09-27 16:29) [678]Ку.
← →
Kerk © (2004-10-03 16:02) [679]Была лаба на сабжевую тему. Наваял кое-что. Зацените. :)
http://kerk.mail2k.ru/postfix.zip
← →
VMcL © (2004-10-03 20:04) [680]>>Kerk © (03.10.04 16:02) [679]
Та ну тебя. Задолбали эти куркуляторы. Давайте лучше компиляторы писАть...
Страницы: 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.6 MB
Время: 0.291 c