Вверх ↑
Этот топик читают: Гость
Ответов: 3655
Рейтинг: 69
#1: 2006-07-18 19:02:28 ЛС | профиль | цитата
Чё то я непонял и где правильный результат
Или всё таки я должен получить сообщение Division by zero.
Вот примеры code_118
карма: 0

0
файлы: 1code_118.txt [511B] [578]
vip
#1.1контекстная реклама от партнеров
Ответов: 9906
Рейтинг: 351
#2: 2006-07-18 20:05:44 ЛС | профиль | цитата
Математические законы не отменили.
Но они никого не заставляют кричать на всю округу Division by zero
Тебе разве кто-то говорит, что 5/0=3
Покажи нарушения закона, будет разговор
карма: 9

0
Ответов: 3655
Рейтинг: 69
#3: 2006-07-18 20:22:46 ЛС | профиль | цитата
Galkov, А какие ещё нужны примеры в первом случае у меня
получается null- пусто короче. А во втором 5/0=5 - это что правильно.
И как делать программу если случайно(например координата какого либо объекта) в MathParse окажется (0) и какой тогда будет
результат.
P.S.
калькулятор пишет error при делении на (0), а Хиасм что неможет.
карма: 0

0
Ответов: 9906
Рейтинг: 351
#4: 2006-07-18 20:44:58 ЛС | профиль | цитата
в первом случае у меня получается null- пусто короче
не ври
А во втором 5/0=5
ты вообще-то чем пользуешься, неужели HiAsm
а Хиасм что неможет
HiAsm может. MathParse перехватывает ошибки, даже происходящие при работе схемы, подключенной к верхней точке. И выдает соответствующее событие.

Чтобы делать глобальный перехват ошибок, для этого недостаточно завести два элемента (скажем Try и Raise) но и повстраивать в коды элементов блоки try-finally в нужные места.
И я считаю это даже крайне необходимым.
А Dilma - против.
карма: 9

0
Ответов: 3655
Рейтинг: 69
#5: 2006-07-18 20:54:55 ЛС | профиль | цитата
Ауууу -Dilma -это ужас

Galkov, Вот ещё пример

Калькулятор ручной пишет error.
калькулятор компа пишет - деление на ноль запрещено.

ХиАсм 3.62b157 пишет ЭТО
В первом случае ответ 15
Во втором 20 code_119
карма: 0

0
файлы: 1code_119.txt [1KB] [524]
Ответов: 9906
Рейтинг: 351
#6: 2006-07-18 21:25:49 ЛС | профиль | цитата
Вячеслав, калькуляторы, как ручной, так и компа - ничего не пишут.
Это пишет программист, который их делал.
В данном случае, это ТЫ.
Вот и пиши....


И вообще, ты чего, FPC пользуешь
И просишь сверх-корректной работы, после этого
карма: 9

0
Ответов: 3655
Рейтинг: 69
#7: 2006-07-18 22:02:33 ЛС | профиль | цитата
Galkov,
И вообще, ты чего, FPC пользуешь
Нет на Делфи компилил, но и под FPS тот же
результат.
Вот и пиши....
Нет проблем для себя я могу написать что угодно типа Сам дурак или научись сначало считать и надпись будет выводится
при делении на ноль ,а остальные то как, которые немогут написать
Неправильно это как то - мягко говоря.
карма: 0

0
Ответов: 9906
Рейтинг: 351
#8: 2006-07-18 22:18:21 ЛС | профиль | цитата
Нет на Делфи компилил
Тогда ты просто врешь
Или взял где-то пиратскую версию MathParse.
Настоящий MathParse АБСОЛЮТНО корректно обрабатывает ошибки. И выдает событие onError, но НЕ выдает onResult. Твои результаты говорят о том, что у тебя - пиратский
АБСОЛЮТНО, означает, что ему и такое: 1e200/1e-200 - семечки (с Math - не советую)

Math не настолько корректен, но уж деление-то на 0 распознает. И выдает событие onError, но НЕ выдает onResult. Аргументов обратному в твоих примерах НЕТ: так что тут - уже твоя проблема.

[size=-2]------ Добавлено в 22:18
Вячеслав, расшифруй пожалуйста FPS
неужели Free Pascal Sompiler
карма: 9

0
Ответов: 3655
Рейтинг: 69
#9: 2006-07-18 22:51:52 ЛС | профиль | цитата
Galkov,
Или взял где-то пиратскую версию MathParse
Интересно где я мог её
взять.
что ему и такое: 1e200/1e-200 - семечки
Согласен ответ - пусто код
ошибки 1.А при делении на 0 то что описано выше ,и никакой ошибки типа так и должно быть.
неужели Free Pascal Sompiler
Наверное так
карма: 0

0
Ответов: 131
Рейтинг: 0
#10: 2006-07-18 23:02:16 ЛС | профиль | цитата
Galkov, у меня ошибка подтверждается. MathParse не выдает ошибку при делении на 0. А FastMathParse, наоборот, генерирует ошибку всегда, даже если число не 0.
code_121
Даже и не знаю, что думать.
карма: 0

0
файлы: 1code_121.txt [622B] [570]
Ответов: 3655
Рейтинг: 69
#11: 2006-07-18 23:12:07 ЛС | профиль | цитата
RedBall, А у тебя наверное FastMathParse другой пират писал
карма: 0

0
Ответов: 9906
Рейтинг: 351
#12: 2006-07-18 23:37:19 ЛС | профиль | цитата
Интересно где я мог её взять.

А я откуда знаю, ты же брал - тебе и вспоминать...
А я знаю как должен работать настоящий. И как работает.
Согласен ответ - пусто
И чего сие должно означать
Не должно быть ответа по onResult, ни "пустого" ни "полного"
Вячеслав, ты справку читал, вообще-то
Там написано:
onResult Происходит после успешного вычисления методом doCalc (в случае неуспеха - onError) и выдает результат в поток
onError Происходит при ошибке по методу doCalc. В поток выдается целое число: 0 – соответствует синтаксической ошибке, а 1 – ошибке вычислений. ...
Вопрос же бесконечно прост: написанное в справке соответствует происходящему
И вариантов ответа всего два: ДА, или НЕТ

Проверь, кстати, на других версиях HiAsm Подозрительно как-то, что на FPC и на Дельфи результаты у тебя одинаковые... Может каким-то макаром у тебя (я не знаю каким это может быть у тебя) в Дельфи дефайнится константа F_P

Фиг его знает чего там еще за выкрутасы на 157-й (как это у тебя еще 5 и 0 в real срабатывают...)
Не буду ее ставить

[size=-2]------ Добавлено в 23:37
RedBall, пример с Fast-ом давай показывай.
btw: он не любит когда приходит на аргумент NUL. Скажем, если ты оставил ему 2 аргумента в своем примере....
карма: 9

0
Ответов: 3655
Рейтинг: 69
#13: 2006-07-18 23:47:09 ЛС | профиль | цитата
Galkov, Сейчас попробую поставить 154-ю на другой диск (чтоб чистинькая была).
карма: 0

0
Ответов: 131
Рейтинг: 0
#14: 2006-07-19 00:05:20 ЛС | профиль | цитата
Galkov, пример совершенно такой же, как и предыдущий:
code_123

Здесь у меня всегда вылетает ошибка, независимо от числа в Edit.
карма: 0

0
файлы: 1code_123.txt [628B] [564]
Ответов: 9906
Рейтинг: 351
#15: 2006-07-19 09:23:14 ЛС | профиль | цитата
И правда....
Придется подумать...
А вы поищите, как к вам определение F_P попало. Вроде единственный вариант, если коды те же...

[size=-2]------ Добавлено в 08:46


И нашел...
Очередной, блин, виток спирали ...
Хорошо хоть не все у себя выкидываю и нашел фиксинг 2-х летней давности:
В строке 890 файла hiFastMathParse.pas надо заменить это:
        ProcCmd2(x,#$DE + #$F1,'fdivr'+s);[/code]на такое:
        ProcCmd2(x,#$DC + #$7E,'fdivr'+s);[/code]

[size=-2]------ Добавлено в 09:23 [/size]
[hr]
Да, вот еще....
Что-то мне припоминается, что фиксил я MathParse в обозримом прошлом.
Хоть и не по этому поводу...
Еще в комнаты фикс выкладывал. И попутно, в варианте FPC, все немыслимые проверки влепил. До этого там был просто заблокированный условной компиляцией raise....
По сему, и на всякий случай, выкладываю.
Но примерчик типа [b][color=blue]1000^1000[/color][/b] на нем проверьте - FPC его брать не должен.
карма: 9

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)