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

Программа выдает одну ошибку, якобы в 48 строчке - C++

Восстановить пароль Регистрация
 
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
26.05.2011, 20:04     Программа выдает одну ошибку, якобы в 48 строчке #1
Завтра мне кирдык если не сделаю!
Программа выдает одну ошибку, якобы в 48 строчке
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
#include <iostream.h>
#include <math.h>
double func(double x)
{
    return (x*x-pow(2.7,1+x)-3);
}
double func2(double x)
{
    return (2+1/x*x+2*x+1);
}
int main()
{
double a;
double b;
double eps;
cout<<"vvedite a=";
cin>>a;
cout<<"vvedite b=";
cin>>b;
cout<<"vvedite eps=";
cin>>eps;
 
double x0;
double x1;
int k=2;
const double e=2.7;
 
cout<<"f(a)="<<func(a)<<"\n";
cout<<"f2(a)="<<func2(a)<<"\n";
cout<<"f(b)="<<func(b)<<"\n";
cout<<"f2(b)="<<func2(b)<<"\n";
 
if ((func(a)*func2(a)<0))
{
    x0=a;
}
cout<<"x[0]="<<x0<<"\n";
x1=x0-(func(x0)*(b=x0))/(func(b)-func(x0));
 
while (fabs(x1-x0)>eps)
{
    x0=x1;
    x1=x0-(func(x0)*(b-x0))/(func(b)-func(x0));
    cout<<"x["<<k<<"]="<<x1<<"\n";
k++;
 
}
else 
{
    x0=b;
    cout<<"x[0]="<<x0<<"\n";
x1=x0-(func(x0)*(x0-a))/(func(x0)-func(a));
 
while (fabs(x1-x0)>eps)
{
    x0=x1;
    x1=x0-(func(x0)*(x0-a))/(func(x0)-func(a));
    cout<<"x["<<k<<"]="<<x1<<"\n";
k++;
 
 
}}
    return 0;
}
Помогите пожалуйста исправить!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
26.05.2011, 20:12     Программа выдает одну ошибку, якобы в 48 строчке #2
у Вас else ни к чему не относится... Его либо не должно быть, либо блок, идущий от else, должен чему - то противопоставляться...

Добавлено через 1 минуту
Может быть, скобку "}" 36 строки нужно переместить на позицию после скобки в 47 строке?! Проверьте...
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
26.05.2011, 20:23  [ТС]     Программа выдает одну ошибку, якобы в 48 строчке #3
В этой проге работает эта строка

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
#include <iostream.h>
#include <math.h>
double func(double x)
{
    return (x*x-pow(e,1+x)-3);
}
double func2(double x)
{
    return (2+1/x*x+2*x+1);
}
int main()
{
float a;
float b;
float eps;
cout<<"vvedite a=";
cin>>a;
cout<<"vvedite b=";
cin>>b;
cout<<"vvedite eps=";
cin>>eps;
float ab;
float x0;
float x1;
const double e=2.7;
/*
float func(a)=(a*a)-pow(e,1+a)-3;
float f2a=2+(1/((a*a)+(2*a)+1));
float fb=(b*b)-pow(e,1+b)-3;
float f2b=2+(1/((b*b)+(2*b)+1));
*/
cout<<"f(a)="<<func(a)<<"\n";
cout<<"f2(a)="<<func2(a)<<"\n";
cout<<"f(b)="<<func(b)<<"\n";
cout<<"f2(b)="<<func2(b)<<"\n";
/*
if ((func(a)*func2(a)<0)
{
    x0=a;
    ab=b;
}
else if ((func(b)*func2(b)<0)
{
    x0=b;
    ab=a;
}
 
cout<<"x[0]="<<x0<<"\n";
x1=x0-((pow(x0,2)-pow(e,1+x0)-3)*(x0-ab))/
((pow(x0,2)-pow(e,1+x0)-3)-(pow(ab,2)-pow(e,1+ab)-3));
cout<<"x["<<1<<"]="<<x1<<"\n";
 
int k=2;
while (fabs(x1-x0)>eps)
{
x0=x1;
x1=x0-((pow(x0,2)-pow(e,1+x0)-3)*(x0-ab))/
((pow(x0,2)-pow(e,1+x0)-3)-(pow(ab,2)-pow(e,1+ab)-3));
cout<<"x["<<k<<"]="<<x1<<"\n";
k++;
}*/
    return 0;
}
не соображу где разница

Добавлено через 4 минуты
так 48 прокатила, все выполняется но считать не считает... видать промах в формулах

Добавлено через 3 минуты
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
#include <iostream.h>
#include <math.h>
double func(double x)
{
    return (x*x-pow(2.7,1+x)-3);
}
double func2(double x)
{
    return (2+1/x*x+2*x+1);
}
int main()
{
double a;
double b;
double eps;
cout<<"vvedite a=";
cin>>a;
cout<<"vvedite b=";
cin>>b;
cout<<"vvedite eps=";
cin>>eps;
 
double x0;
double x1;
int k=2;
const double e=2.7;
 
cout<<"f(a)="<<func(a)<<"\n";
cout<<"f2(a)="<<func2(a)<<"\n";
cout<<"f(b)="<<func(b)<<"\n";
cout<<"f2(b)="<<func2(b)<<"\n";
 
if ((func(a)*func2(a)<0))
{
    x0=a;
 
cout<<"x[0]="<<x0<<"\n";
x1=x0-(func(x0)*(b=x0))/(func(b)-func(x0));
cout<<"x[1]="<<x1<<"\n";
while (fabs(x1-x0)>eps)
{
    x0=x1;
    x1=x0-(func(x0)*(b-x0))/(func(b)-func(x0));
    cout<<"x["<<k<<"]="<<x1<<"\n";
k++;
 
}}
else
{
    x0=b;
 
cout<<"x[0]="<<x0<<"\n";
x1=x0-(func(x0)*(x0-a))/(func(x0)-func(a));
cout<<"x[1]="<<x1<<"\n";
while (fabs(x1-x0)>eps)
{
    x0=x1;
    x1=x0-(func(x0)*(x0-a))/(func(x0)-func(a));
    cout<<"x["<<k<<"]="<<x1<<"\n";
k++;
 
}}
    return 0;
}
lasbat
2 / 2 / 0
Регистрация: 06.05.2010
Сообщений: 18
26.05.2011, 20:41     Программа выдает одну ошибку, якобы в 48 строчке #4
Цитата Сообщение от Непрограммистка Посмотреть сообщение
В этой проге работает эта строка


Добавлено через 4 минуты
так 48 прокатила, все выполняется но считать не считает... видать промах в формулах

[/CPP]
using namespace std; не забыли? у меня все считает

Добавлено через 36 секунд
Код
vvedite a=1
vvedite b=2
vvedite eps=3
f(a)=-9.29
f2(a)=6
f(b)=-18.683
f2(b)=8
x[0]=1
x[1]=1.#INF
x[2]=-1.#IND
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
26.05.2011, 21:11  [ТС]     Программа выдает одну ошибку, якобы в 48 строчке #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
38
39
40
41
42
43
44
45
46
47
#include <iostream.h>
#include <math.h>
 
double func(double x)
{
    return((x*x)-pow(2.7,1+x)-3);
}
int main()
{
double a;
double b;
double eps;
cout<<"vvedite a=";
cin>>a;
cout<<"vvedite b=";
cin>>b;
cout<<"vvedite eps=";
cin>>eps;
 
 
while (fabs(b-a)>eps)
{
  double c=(a+b)/2;
 
    cout<<"c="<<c<<"\n";
    cout<<"f(a)="<<func(a)<<"\n";
    cout<<"f(c)="<<func(c)<<"\n";
    cout<<"f(b)="<<func(b)<<"\n";
    
      
        if (func(a)*func(c)<0)
    {
        b=c;
    }
    else 
    {
        a=c;
    }
    cout<<"a="<<a<<"\n";
    cout<<"b="<<b<<"\n";
 
  }
cout<<"x="<<a<<"\n";
 
 
    return 0;
}
lasbat
2 / 2 / 0
Регистрация: 06.05.2010
Сообщений: 18
26.05.2011, 21:25     Программа выдает одну ошибку, якобы в 48 строчке #6
Код
vvedite a=1
vvedite b=2
vvedite eps=0.1
c=1.5
f(a)=-9.29
f(c)=-12.7287
f(b)=-18.683
a=1.5
b=2
c=1.75
f(a)=-12.7287
f(c)=-15.2925
f(b)=-18.683
a=1.75
b=2
c=1.875
f(a)=-15.2925
f(c)=-16.8692
f(b)=-18.683
a=1.875
b=2
c=1.9375
f(a)=-16.8692
f(c)=-17.7444
f(b)=-18.683
a=1.9375
b=2
x=1.9375
Для продолжения нажмите любую клавишу . . .
все в порядке
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2011, 21:36     Программа выдает одну ошибку, якобы в 48 строчке
Еще ссылки по теме:

Программа выдает одну и ту же ошибку C++
C++ программа выдает ошибку, как ее поправить
C++ Программа запускается, но при компиляции выдает ошибку

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

Или воспользуйтесь поиском по форуму:
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
26.05.2011, 21:36  [ТС]     Программа выдает одну ошибку, якобы в 48 строчке #7
я ввожу -1, 2 , 0,0005 и у мня фигня получается

Добавлено через 4 минуты
Цитата Сообщение от lasbat Посмотреть сообщение
Код
vvedite a=1
vvedite b=2
vvedite eps=0.1
c=1.5
f(a)=-9.29
f(c)=-12.7287
f(b)=-18.683
a=1.5
b=2
c=1.75
f(a)=-12.7287
f(c)=-15.2925
f(b)=-18.683
a=1.75
b=2
c=1.875
f(a)=-15.2925
f(c)=-16.8692
f(b)=-18.683
a=1.875
b=2
c=1.9375
f(a)=-16.8692
f(c)=-17.7444
f(b)=-18.683
a=1.9375
b=2
x=1.9375
Для продолжения нажмите любую клавишу . . .
все в порядке
все разобралась
Yandex
Объявления
26.05.2011, 21:36     Программа выдает одну ошибку, якобы в 48 строчке
Ответ Создать тему
Опции темы

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