-59 / 1 / 1
Регистрация: 01.04.2013
Сообщений: 112
|
||||||
1 | ||||||
Log Domain error07.02.2014, 20:06. Показов 2534. Ответов 5
Метки нет (Все метки)
Поясните начинающему программисту эту ошибку???
вот код программы, и почему эта ошибка при отрицательном значении???
0
|
07.02.2014, 20:06 | |
Ответы с готовыми решениями:
5
sqrt: DOMAIN error Ошибка pow: DOMAIN error Выдает ошибку sqrt: domain error НАПИСАЛ ПРОГРАММУ! выдает DOMAIN ERROR !хотя считает! |
07.02.2014, 20:12 | 2 |
Сообщение было отмечено Dragwor как решение
Решение
Строчка странная если с ума не сошел то это exp(log(x))=x.... Да и к тому же log не может содержать отрицательный аргумент...
0
|
232 / 232 / 69
Регистрация: 30.09.2012
Сообщений: 545
|
|
07.02.2014, 20:17 | 3 |
Нужно устроить проверку ввода, чтобы запретить ввод отрицательных значений. Выше написали, что отрицательного аргумента быть не может.
0
|
-59 / 1 / 1
Регистрация: 01.04.2013
Сообщений: 112
|
|
08.02.2014, 10:34 [ТС] | 4 |
А почему тогда при вводе отрицательного значения он выдает ошибку и все равно считает это выражение??? и значение при отрицательном вводе постоянно 1, почему???
0
|
08.02.2014, 10:50 | 5 |
Вполне допускаю что это прикол компилятора: мой например (MVS2012) ошибку не выдает, но и ответ странный: -1.#IND...
А вообще (-1) это округленное при выводе на консоль значение kub.. А тот прибавок exp(log(x))=x Ваш компилятор в отличии от моего просто игнорирует (напечатав ошибку ранее)... У меня был случай когда я использовал тип float а не double и в какой-то момент из-за не хватки точности происходило округление числа до 0 и как следствие вылезало деление 0. Но при этом компилятор не считал это ошибкой а просто выдавал какой-то мусор....
0
|
232 / 232 / 69
Регистрация: 30.09.2012
Сообщений: 545
|
|
08.02.2014, 11:16 | 6 |
Dragwor, Переменная kub это же единица в кубе, то есть всегда единица. ln(-x) это уже комплексное число и обычная функция log() с math.h не решает такого, а выдаёт ошибки. Вообще говоря exp(ln(-x)) = -x, но это для людей так, а машина е возводит в степень ln(-x), а ln(-x), как я писал не вычисляется правильно, поетому на этом этапе выступает ошибка.
Очень похоже, что ваш компилятор отбрасывает эту вещь и выводит на печать ошибку, а потом уже переменную kub, которая всегда равна единице. Хотя у меня тоже пишет -1.#IND.
0
|
08.02.2014, 11:16 | |
08.02.2014, 11:16 | |
Помогаю со студенческими работами здесь
6
Floating point error:Domain.Abnormal program termination - ??? это что значит? Ошибка pow:DOMAIN error в написании функции Бесселя первого рода нулевого порядка Ошибка "domain error" при вычислении выражения По заданым значениям х и у найти значение величины log x y (log с основанием х) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |