1 / 1 / 1
Регистрация: 28.01.2014
Сообщений: 139

Ошибка #IND00. Как избежать деления на ноль?

01.12.2014, 14:27. Показов 7304. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть такая программа
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <clocale>
#include <cstdio>
#include <math.h>
double fact(int n)
{
    double p=1;
    for (int i=1;i<n;i++)
    p=p*i;
    return p;
}
double f(double x,double eps)
{ double Sum=0;int i=1;double fi;
do
{fi=sin(x)*pow(x,i+1)/((i-5)*(i*i*i));
Sum=Sum+fi;i++;
}while (abs(fi)>=eps);
return Sum;
}
int main()
{
    double a,b,c,x,fx,eps;
    int N;
    setlocale(LC_ALL,"Russian");
    printf("Введите числа a,b,N\n");
    scanf("%lf%lf%d",&a,&b,&N);
    printf("Введите eps(точность 0.001-0.00001) \n");
    scanf("%lf", &eps);
    printf("\n x         f(x)");
    double dx=(b-a)/N;
    for(int i=0; i<N; i++)
    {
    x=a+i*dx;
    fx=f(x,eps);
    printf("\n %lf %lf", x, fx);
    }
return 0;
}
Табуляция на отрезке [A,B] N раз. С точностью eps. На выходе имеем #IND00. Почему?
Заранее спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.12.2014, 14:27
Ответы с готовыми решениями:

Обеспечить пропуск расчетов, чтобы избежать деления на ноль
Здравствуйте есть прога, которая вычисляет y=sin(x)/cos(x) в диапазоне изменения X от 0 с шагом 0,2 Нужно обеспечить пропуск расчетов...

Как избежать деления на ноль
var x1,x2,x3,x4,y1,y2,y3,y4,k1,k2,y,x,b1,b2:Integer; begin x1:=StrToInt(Edit1.text); x2:=StrToInt(Edit2.text); ...

Как сделать ноль результатом деления на ноль?
Народ, подскажите пожалуйста как сделать, чтоб при делении на ноль результат был равен нулю, а не бесконечности? переменных, которые могут...

5
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 35
01.12.2014, 14:38
If your operation would generate a larger positive number than could be stored in a double, the operation will return 1.#INF on Windows or inf on Linux. Similarly your code will return -1.#INF or -inf if the result would be a negative number too large to store in a double. Dividing a positive number by zero produces a positive infinity and dividing a negative number by zero produces a negative infinity. Example code at the end of this page will demonstrate some operations that produce infinities.

Some operations don't make mathematical sense, such as taking the square root of a negative number. (Yes, this operation makes sense in the context of complex numbers, but a double represents a real number and so there is no double to represent the result.) The same is true for logarithms of negative numbers. Both sqrt(-1.0) and log(-1.0) would return a NaN, the generic term for a "number" that is "not a number". Windows displays a NaN as -1.#IND ("IND" for "indeterminate") while Linux displays nan. Other operations that would return a NaN include 0/0, 0*∞, and ∞/∞. See the sample code below for examples.

In short, if you get 1.#INF or inf, look for overflow or division by zero. If you get 1.#IND or nan, look for illegal operations. Maybe you simply have a bug. If it's more subtle and you have something that is difficult to compute, see Avoiding Overflow, Underflow, and Loss of Precision. That article gives tricks for computing results that have intermediate steps overflow if computed directly.
0
1 / 1 / 1
Регистрация: 28.01.2014
Сообщений: 139
01.12.2014, 15:14  [ТС]
Тамика, спасибо, конечно, но это я читал. Гуглом я пользоваться умею
0
1 / 1 / 1
Регистрация: 28.01.2014
Сообщений: 139
02.12.2014, 21:53  [ТС]
Вверх
0
Модератор
Эксперт С++
 Аватар для zss
13761 / 10957 / 6488
Регистрация: 18.12.2011
Сообщений: 29,218
02.12.2014, 22:10
Цитата Сообщение от jon4eg Посмотреть сообщение
fi=sin(x)*pow(x,i+1)/((i-5)*(i*i*i));
У Вас тут при i=5 деление на ноль!
0
1 / 1 / 1
Регистрация: 28.01.2014
Сообщений: 139
02.12.2014, 22:12  [ТС]
а как тогда исключить i=5?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.12.2014, 22:12
Помогаю со студенческими работами здесь

Ошибка деления на ноль
Паскаль подключает модуль ассемблера где асм должен посчитать пример (2*с+d-52)/(a/4+1), для ShortInt считает правильно а вот для...

Ошибка деления на ноль
{$M $1000,0,0} Program Scan_code; Uses Crt,Dos; Var OldKey: Procedure; c,c1 : Byte; vkl : Boolean; {$F+} ...

Ошибка деления на ноль
Что тут неверно? Private Sub Command1_Click() x = 0.169 y = -8.004 * 10 ^ -2 j = 7.7 alpha = 2 ^ -x * Abs(y - x ^ 3.1 / y) *...

Ошибка деления на ноль
program lab4; uses crt; var i,n,x,sq,fac:integer; d:boolean; s:real; const tochnost=0.001; begin CLRSCR; readln(x,n);

Ошибка деления на ноль
Ломаю голову почему код не работает... выдает ошибку &quot;деление на ноль&quot; на строке t:= n mod (q*64*64); var n,q : integer; t:...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Непрерывная интеграция для пакета Python
Mr. Docker 22.06.2025
Было 4 часа утра пятницы, когда я выпустил новую версию нашей внутренней библиотеки для обработки данных. Релиз 0. 5. 2 содержал небольшой фикс для обработки дат в ISO формате, что может пойти не так?. . .
Продвинутый ETL на C# из OLTP БД в хранилище
stackOverflow 22.06.2025
Работая в сфере корпоративной аналитики, я постоянно сталкиваюсь с одним и тем же - нужны чистые, структурированные и, главное, свежие данные. Без них современные аналитические системы, машинное. . .
Мастер-класс по микросервисам на Node.js
Reangularity 21.06.2025
Node. js стал одной из самых популярных платформ для микросервисной архитектуры не случайно. Его неблокирующая однопоточная модель и событийно-ориентированный подход делают его идеальным для. . .
Управление Arduino из WPF приложения
Wired 21.06.2025
Зачем вообще связывать Arduino с WPF-приложением? Казалось бы, у Arduino есть собственная среда разработки, своя экосистема, свои способы управления. Однако при создании серьезных проектов. . .
Звёздная пыль
kumehtar 20.06.2025
Я просто это себе представляю: как создавался этот мир. Как энергия слипалась в маленькие частички. Как они собирались в первые звёзды, как во вселенной впервые появился Свет. Как эти звёзды. . .
Создание нейросети с PyTorch
AI_Generated 19.06.2025
Ключевое преимущество PyTorch — его питоновская натура. В отличие от TensorFlow, который изначально был построен как статический вычислительный граф, PyTorch предлагает динамический подход. Это. . .
JWT аутентификация в ASP.NET Core
UnmanagedCoder 18.06.2025
Разрабатывая веб-приложения, я постоянно сталкиваюсь с дилеммой: как обеспечить надежную аутентификацию пользователей без ущерба для производительности и масштабируемости? Классические подходы на. . .
Краткий курс по С#
aaLeXAA 18.06.2025
Здесь вы найдете все необходимые функции чтоб написать програму на C# Задание 1: КЛАСС FORM 1 public partial class Form1 : Form { Spisok listin = new Spisok(); . . .
50 самых полезных примеров кода Python для частых задач
py-thonny 17.06.2025
Эффективность работы разработчика часто измеряется не количеством написаных строк, а скоростью решения задач. Готовые сниппеты значительно ускоряют разработку, помогают избежать типичных ошибок и. . .
C# и продвинутые приемы работы с БД
stackOverflow 17.06.2025
Каждый . NET разработчик рано или поздно сталкивается с ситуацией, когда привычные методы работы с базами данных превращаются в источник бессонных ночей. Я сам неоднократно попадал в такие ситуации,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru