Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 03.05.2015
Сообщений: 9
1

Ошибки Pow: Domain error и Log10: Domain error

04.03.2016, 04:05. Показов 2940. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, возникла проблема, при компиляции программы выдаёт ошибки, указанные в заголовке, первую выдаёт при выполнение функции:

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
void Graph3(double MinLower, double MaxLower, double Step)
{
        double X = MinLower;
        while (X<=MaxLower)
        {
                double Slot = pow((X-2), 2.0/3) + pow((X+2), 2.0/3);
                Form1->Series1->AddXY(X, Slot, "", clRed);
                X += Step;
        }
        Form1->Label3->Caption = "(x-2)^(2/3)+(x+2)^(2/3)";
}
Вторую выдаёт при выполнения функции:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
void Graph7(double MinLower, double MaxLower, double Step)
{
        double X = MinLower;
        while (X<=MaxLower)
        {
                double Slot = 5*log10(X)/log10(2)*(X+1);
                Form1->Series1->AddXY(X, Slot, "", clRed);
                X += Step;
        }
        Form1->Label3->Caption = "5*log2(x+1)";
}
Примерно понимаю, с чем это связано, но не совсем понимаю, как решить эту проблему, подскажите, пожалуйста.
При необходимости скину весь проект. Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2016, 04:05
Ответы с готовыми решениями:

Ошибки вычислений, POW: Domain Error
{float a,b,h,x,y,k; a=StrToFloat(Edit1-&gt;Text); b=StrToFloat(Edit2-&gt;Text);...

C++ Builder pow: DOMAIN error
выбивает ошибку вот код. помогите пожалуйста. скорее всего проблема с функцией что с рекурсией ...

Pow: DOMAIN error Borland C++
Выдает ошибку pow: DOMAIN error и неправильно считает функцию. Вообще без понятия что это и что с...

Вылетает pow: domain error
Здравствуйте.Вообщем пишу программу суть которой такова.дано уравнение left=r где r это бесконечная...

5
Практикантроп
4826 / 2718 / 526
Регистрация: 23.09.2011
Сообщений: 5,777
04.03.2016, 09:25 2
Цитата Сообщение от Samriel Посмотреть сообщение
Примерно понимаю, с чем это связано
- было бы интересно. Потому что у меня на BCB5 такой вот аналог__
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TForm1::Button1Click(TObject *Sender)
{
     double MinLower=100.0;
     double MaxLower=500.1;
     double Step = 10.0;
 
     double X = MinLower;
     while (X<=MaxLower)
     {
       double Slot = pow((X-2), 2.0/3) + pow((X+2), 2.0/3);
       //   Form1->Series1->AddXY(X, Slot, "", clRed);
       Slot ;
       X += Step;
     }
     Form1->Label3->Caption = "(x-2)^(2/3)+(x+2)^(2/3)";
}
_ никаких ошибок не вызывает и прекрасно компилируется и запускается...
0
0 / 0 / 0
Регистрация: 03.05.2015
Сообщений: 9
04.03.2016, 10:28  [ТС] 3
По условию требуется использовать диапазон -100...100, подозреваю, что это связано с отрицательными числами и нулём, вероятно, но каким-то образом нужно построить именно эти графики, собственно, в чём и загвоздка, как я подозреваю, могу конечно ошибаться.

Так же, мб дело в вычисление шага, он должен производиться по такой формуле, по условию:
C++
1
double Step = fabs(MinLower - MaxLower)/100;
0
Практикантроп
4826 / 2718 / 526
Регистрация: 23.09.2011
Сообщений: 5,777
04.03.2016, 10:59 4
Да, действительно. С отрицательными именно такая ошибка.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
04.03.2016, 11:34 5
Цитата Сообщение от Samriel Посмотреть сообщение
но каким-то образом нужно построить именно эти графики
https://www.cyberforum.ru/cgi-bin/latex.cgi?{x}^{\frac{y}{z}} = \sqrt[z]{x^y}
, так что если сначала отдельно возвести число в квадрат (после чего оно, очевидно, станет положительным) и только потом извлечь из результата кубический корень - то ошибки в первом случае просто не будет, ей будет неоткуда взяться:
C++
1
double Slot = pow((X-2)*(X-2), 1.0/3) + pow((X+2)*(X+2), 1.0/3);
Со второй функцией проблема. Логарифм от отрицательных значений не определен, так что отрисовать функцию можно будет только при x > (-1), а не от (-100)
0
0 / 0 / 0
Регистрация: 03.05.2015
Сообщений: 9
04.03.2016, 13:29  [ТС] 6
Спасибо за помощь, про логарифм почитал, что, вроде как, его можно при отрицательном значение заменить на его абсолютное значение, решил так и оставить.
0
04.03.2016, 13:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2016, 13:29
Помогаю со студенческими работами здесь

Выдает ошибку pow DOMAIN error
Доброго времени суток, выдает ошибку pow DOMAIN error при расчете примера. Всю голову сломал уже,...

Выдаёт ошибку: acos DOMAIN error,полсе нажатия окей,ещё одну ошибку pow OWERFLAW ERROR
Здравствуйте! подскажите пожалуйста где ошибка в коде. Выдаёт ошибку: acos DOMAIN error,полсе...

На другом компьютере exe файл C++ Builder 6 открывается,но выдает ошибку "pow : DOMAIN error"
На другом компьютере файл exe открывается но выдает ошибку: pow : DOMAIN error. На моем компе есть...

Log domain error
Значения s1 = 1.05, s2 = 1.4; n = 15. Как я понял эта ошибка возникает когда выражение под...

Выдает ошибку sqrt: DOMAIN error
Выдает ошибку sqrt: DOMAIN error уже при запуске програме когда произвожу рассчет я так понял что...

Ошибка при выполнении кода "sqrt: DOMAIN error"
Привет, форумчане. Задали курсовик. одно из заданий - рисование графика - лемнискаты (такая...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru