Форум программистов, компьютерный форум CyberForum.ru

Ошибка pow: DOMAIN error - C++

Восстановить пароль Регистрация
 
Regios
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 10
12.02.2014, 01:20     Ошибка pow: DOMAIN error #1
При запуске в C++ Builder функция спамит вышеуказанной ошибкой, в выводе все значения при (i-j)<0 забиты значением INF, при (i-j)>0 выводятся числа, но весьма далёкие от верных результатов.
Пробовал обойти через ab=eln(a)*b и через a-b=1/ab, но результаты выдаёт схожие.
Подскажите нубу, в чём может быть проблема.

C++
1
2
3
4
5
6
7
void Matrix (TMatr a)
{
 int i,j;
 for (i=0;i<n;i++)
   for (j=0;j<n;j++)
     a[i][j]=pow((7+i)/(9+j),i-j)+exp(cos(j))-9.42;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2014, 01:20     Ошибка pow: DOMAIN error
Посмотрите здесь:

C++ НАПИСАЛ ПРОГРАММУ! выдает DOMAIN ERROR !хотя считает!
Выдает ошибку sqrt: domain error C++
C++ sqrt: DOMAIN error
C++ ошибка pow overflow error
Ошибка pow:Overflow error C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Amandosov
Знаток
156 / 156 / 65
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
12.02.2014, 01:24     Ошибка pow: DOMAIN error #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Regios Посмотреть сообщение
C++
1
2
3
4
5
6
7
void Matrix (TMatr a)
{
int i,j;
for (i=0;i<n;i++)
for (j=0;j<n;j++)
a[i][j]=pow((7+i)/(9+j),i-j)+exp(cos(j))-9.42;
}
попробуй так:
C++
1
2
3
4
5
6
7
void Matrix (TMatr a)
{
int i,j;
for (i=0;i<n;i++)
for (j=0;j<n;j++)
a[i][j]=pow(double(7+i)/double(9+j),double(i-j))+exp(cos(double(j)))-9.42;
}
Regios
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 10
12.02.2014, 01:26  [ТС]     Ошибка pow: DOMAIN error #3
Спасибо, помогло.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.02.2014, 01:28     Ошибка pow: DOMAIN error #4
А здесь нет деления на ноль?
Цитата Сообщение от Amandosov Посмотреть сообщение
(7+i)/(9+j)
Regios
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 10
12.02.2014, 01:30  [ТС]     Ошибка pow: DOMAIN error #5
Цитата Сообщение от programina Посмотреть сообщение
А здесь нет деления на ноль?
Нет, обе переменные всегда больше или равны нулю.
Regios
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 10
12.02.2014, 01:34  [ТС]     Ошибка pow: DOMAIN error #6
Amandosov, если не сложно, можешь объяснить, в чём здесь проблема заключалась?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2014, 01:46     Ошибка pow: DOMAIN error
Еще ссылки по теме:

Log Domain error C++
C++ Ошибка "pow() overflow error"
Ошибка pow:DOMAIN error в написании функции Бесселя первого рода нулевого порядка C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Amandosov
Знаток
156 / 156 / 65
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
12.02.2014, 01:46     Ошибка pow: DOMAIN error #7
просто здесь проблема приоритете переменных, то есть int и double. У int-та приоритет выше и превращает double в int. Например: 1/2
int(1)/int(2)=1
int(1)/double(2)=1
double(1)/int(2)=1
double(1)/double(2)=1.5
Yandex
Объявления
12.02.2014, 01:46     Ошибка pow: DOMAIN error
Ответ Создать тему
Опции темы

Текущее время: 10:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru