![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
Давно уже пишу на Delphi, но до сих пор бывают открытия.
Код Код:
Правда, если в Delphi добавить после деления Код:
В чем там разница? Пробовал {$Q+} или {$Q-} - ничего не меняется. |
![]() |
![]() |
![]() |
#2 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,672
|
![]() |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 686
|
![]()
Ну пример из кода слишком "учебный"=)
А в практической задаче в чем проблема вставить перед делением проверку? Код:
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,716
|
![]()
Интересно было бы пройти в режиме отладки. Может, компилятор умный и выбрасывает этот оператор?
![]() А вообще, по-моему, эксперименты типа "если нельзя, но хочется" - бессмыслены по сути. Это как искать систему в конвульсиях убитого тореадором быка. Не люблю корриду и испанцев, которые её любят. |
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]() Цитата:
Написал небольшой код на Дельфы для проверки быстродействия, там куча циклов с простыми операциями, типа Код:
Не обратил внимание на возможность деления на 0, в Дельфы все прокатило, а потом решил а Лазарусе - а там - оба-на, переполнение. Потом конечно вставил проверку Код:
Код:
Delphi ( без проверки =0 ) 0.17 сек Delphi ( с проверкой =0 ) 1.39 сек Lazarus ( с проверкой =0 ) 12.16 сек Тоже загадка, почему такая разница Дельфы и Лазарус. Кстати не всегда, другие тесты примерно одинаково. |
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]() |
![]() |
![]() |
![]() |
#8 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,672
|
![]()
Это могло быть шуткой, только грустной.
как буд-то с делфи 7 не имели опыта работы, если это на полном серьёзе )) Просто у компилятора не возникло проблем с делением на ноль, взял и поделил. А в чём собсвенно должна быть проблема? Это же даже не математическая операция А функция http://www.delphibasics.ru/Div.php Перепешите её под себя, будет ошибку выдавать, если добавите условие которое вам надо )) Память выделенную под переменную откройте и посмотрите что там внутри. как вариант http://www.delphibasics.ru/FloatToStr.php http://www.delphibasics.ru/FloatToStrF.php поиграться с выводом, если ошибка, то нужно уже к памяти обращаться под переменной, посмотреть что там )) Ещё к паскалю в синем экране можно было бы придраться, почему он переменные сам не обнуляет )) |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]() |
![]() |
![]() |
![]() |
#10 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,672
|
![]()
да я перечитал и откорректировал сообщение,
http://www.delphibasics.ru/PInt64.php вот держи по указателям ссылку Когда-то делфи 7 такой объёмной казалась, а сейчас смотрится как небольшая, вероятно даже компоненты уже ничем не помогают ей )) |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывести на экран 1 или 0 в зависимости от того, имеют три заданных целых числа одинаковую четность или нет. Delphi. Проверить задачу на ошибки | student_23 | Помощь студентам | 3 | 27.01.2017 09:45 |