|
0 / 0 / 0
Регистрация: 30.11.2010
Сообщений: 22
|
||||||
Программа не перехватывает исключение "Деления на нуль"14.01.2011, 16:44. Показов 1934. Ответов 3
Метки нет (Все метки)
Здравствуйте! Работаю с перехватчиками исключений. Написал простенькую программу и по ней возник вопрос. Буду очень признателен если поможете разобраться.
4/3равно 1 Произошло деление на 0 6/12равно 0 7/3равно 2 12/45равно 0 Произошло деление на 0 Индекс превзошел величину массива Индекс превзошел величину массива Далее, если вместо частного (типа int) massive1[i] / massive2[i] поставить частное типа double 1.0*massive1[i] / massive2[i], то результат программы будет уже таков: 4/3равно 1,33333333333333 2/0равно бесконечность 6/12равно 0,5 7/3равно 2,33333333333333 12/45равно 0,266666666666667 15/0равно бесконечность Индекс превзошел величину массива Индекс превзошел величину массива То есть во втором случае программа не перехватывает исключение "Деления на нуль". А почему так происходит?
0
|
||||||
| 14.01.2011, 16:44 | |
|
Ответы с готовыми решениями:
3
Исключения. Добавить исключение для деления на нуль Попытка деления на нуль Проверка деления на нуль |
|
638 / 499 / 77
Регистрация: 28.07.2010
Сообщений: 895
|
|
| 14.01.2011, 17:02 | |
Сообщение было отмечено Памирыч как решение
Решение
Потому что для типа double допустима операция деления на нуль, и в результате получиться бесконечность, т.е. 10.0 / 0.0 == +infinity; -10.0 / 0.0 == -infinity; 0.0 / 0.0 = NaN
1
|
|
|
26 / 26 / 5
Регистрация: 28.12.2009
Сообщений: 85
|
|
| 14.01.2011, 17:07 | |
|
Потому, что в типах Double и float есть деление на нуль и оно возвращает +бесконечность или -бесконечность.
Если учил высшую математику, то должен понимать, почему так происходит но, если не понимаешь, расскажу вкратце. Представь, что 0 это не 0 а просто очень очень очень маленькое число. Не 0.1 и не 0.00000001 а еще намного меньше. Такое число называется бесконечно малым числом. Дальше : 10/1 = 10 10/0,5 = 10 10/0,0001 = 10000 Следовательно, если разделить ЛЮБОЕ число на бесконечно малое число то получится бесконечно большое число.
1
|
|
|
0 / 0 / 0
Регистрация: 30.11.2010
Сообщений: 22
|
|
| 14.01.2011, 17:14 [ТС] | |
|
Спасибо. Понял.
0
|
|
| 14.01.2011, 17:14 | |
|
Помогаю со студенческими работами здесь
4
Проверка деления на нуль Вывод об ошибке деления на нуль Бесконечность и попытка деления на нуль
Как отловить SIMD исключение (деление на нуль) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|