Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.83
Best-pm07
..:::BesT:::..
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
#1

pow: OVERFLOW error...Floating Point: Overflow - C++

20.06.2009, 15:26. Просмотров 2883. Ответов 0
Метки нет (Все метки)

Помогите разобраться почему в программе выводятся эти ошибки после ввода значений
-----------------------
pow: OVERFLOW error
Floating Point: Overflow
-----------------------


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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include <stdlib.h>
#include <math.h>
#include <iostream.h>
 
double eps, l;
 
double alpha(const double&);
double beta(const double&);
void fillX(double*, const double*, const int&);
void fillY(double*, const double*, const int&);
void sort(double*, const int&);
int bigElement(const double*, const int&);
 
int main(int argc, char* argv[])
{
    int n, k;
    cout << "Введите epsilon, l и n: "; cin >> eps >> l >> n;
    if(n < 1)
        { cerr << "n должно быть не меньше 1" << endl; return -1; }
    n++; cout << endl;
    double *a = new double[n];
    double *b = new double[n];
    double *x = new double[n];
    double *y = new double[n];
 
    k = n; while(--k) a[k] = rand() % n;
    k = n; while(--k) b[k] = rand() % n;
 
    fillX(x, a, n);
    fillY(y, b, n);
 
    cout << "Наибольшие элементы массивов..." << endl;
    cout << "x: " << x[bigElement(x, n)] << "\t";
    cout << "y: " << y[bigElement(y, n)] << "\t"<< endl;
    cout << endl;
 
    sort(x, n);
    sort(y, n);
 
    cout << "\t x:\t y:\t" << endl;
    cout << "\t-------------------------------------" << endl;
    cout << "1:\t" << x[1] << "\t" << y[1] << "\t";
    cout << "\t<-- наибольшие элементы" << endl;
    cout << "\t-------------------------------------" << endl;
    for(k = 2; k < n; k++)
                                          cout << k << ":\t" << x[k] << "\t" << y[k] << endl;
    for(k = n; k < n; k++) cout << k << ":\t  --\t" << y[k] << "\t  --" << endl;
    cout << endl;
 
    delete []a;
    delete []b;
    delete []x;
    delete []y;
    return 0;
}
 
double alpha(const double &x) { return x*l*sin(M_PI*l*x); }
 
double beta(const double &x)  { return pow(alpha(x),2)+pow(eps,2)*x; }
 
 
void fillX(double *x, const double *a, const int &n)
{
    int k, p; double kp, s = 0;
    for(k = 1; k < n; k++)
    {
        kp = pow(eps, k - k);
        for(p = k; p < n; p++)
        {
            s += kp * alpha(k + 2*p);
            kp *= (p * (3*k + 1)) / (k * (2*k + p + 1)) * eps;
        }
        x[k] = 1+k*alpha(sqrt(k)) * a[k] + s;
    }
}
 
void fillY(double *y, const double *b, const int &n)
{
    int k, p; double kp, s = 0;
    for(k = 1; k < n; k++)
    {
        kp = pow(l, p);
        for(p = k; p < n; p++)
        {
            s += kp * alpha(k + 2*p);
            kp *= (p * (3*k + 1)) / (k * (2*k + p + 1)) * (1 + eps);
        }
        y[k] =  k * beta(sqrt(k*l)) * b[k] + s;
    }
}
 
void sort(double *arr, const int &n)
{
    int i = 2, j, k; double tmp;
    do
    {
        j = 1;
        do
        {
            if(arr[i] >= arr[j])
            {
                k = i;
                tmp = arr[i];
                do
                {
                    arr[k] = arr[k - 1];
                    k--;
                } while(k > j);
                arr[j] = tmp;
                j = i;
            } else {
                j++;
            }
        } while(j < i);
        i++;
    } while(i < n);
}
 
int bigElement(const double *arr, const int &size)
{
    int i, min = 1;
    for(i = 1; i < size; i++)
        if(arr[i] > arr[min]) min = i;
    return min;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2009, 15:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос pow: OVERFLOW error...Floating Point: Overflow (C++):

stack overflow in C++ - C++
#include&lt;iostream&gt; #include&lt;cmath&gt; using namespace std; int main() { int n,i,n1,j,a1,b1; double n2; bool a; bool b; ...

Floating Point Exception - C++
Здравствуйте! Подскажите, пожалуйста, почему при решении методом Рунге-Кутта системы диффуров вида y'=Ay+(yT)By, где А и В - матрицы,...

invalid floating point operation - C++
помогите решить вот такую вот задачу: Коэффициенты системы линейных уравнений заданы в виде квадратной матрицы. С помощью допустимых...

Floating Point:Square Root of Negative Number - C++
После запуска программы в Borland C++ вылезает следующая ошибка Floating Point:Square Root of Negative Number. В чем причина и как ее...

Floating Point Overflow - C++ Builder
Помогите!При выполнении программы на С++ Builder 6 выдается ошибка Floating point overflow. щшибку выдает здесьt2=(t1+fi1*(t1-tau)) Что...

Почему возникает ошибка 'floating point overflow at 0x00410aea'? - C++ Builder
При выполнении программы возникает данная ошибка. На скриншотах один и тот же участок кода, с подсвеченной строкой при ошибке, а также...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2009, 15:26
Привет! Вот еще темы с ответами:

"Аппроксимация функций многочленами Чебышева" Floating point overflow ошибка - C++ Builder
Задание: написать программу для аппроксимации функции с помощью многочленов Чебышева. В данной программе должны вводиться значения...

Stack overflow - C++ Builder
Еще раз здрасьте=) Простите за дубляж тем, но последние сообщения тут, видимо, читают редко, а мне срочно нужна эта программка. Кстати,...

Stack Overflow из-за PopupMenu? - C++ Builder
Ошибка: Project raised exxeption class EStackOverflow with message Stack overflow Знаю причины по которым она обычно возникает: ...

Exception class overflow with message floating point overflow - C++
Прощу вашего совета в строке кода RxSpinEdit-&gt;Value=Step * (MyRound(RxSpinEdit-&gt;Value*Koef/Step)); функция MyRound int...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru