Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
6-1093690901
Turbid
2004-08-28 15:01
2004.11.07
Head-запрос к web-странице


1-1098421675
Anatoly P
2004-10-22 09:07
2004.11.07
Консольная программа


1-1098543121
PURGEN
2004-10-23 18:52
2004.11.07
Ошибка в коде ???


3-1097220207
anat
2004-10-08 11:23
2004.11.07
ODAC-TOraLoader


1-1098394798
Makhanev A.S.
2004-10-22 01:39
2004.11.07
Директивы условной компиляции...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский