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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
#1

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

26.05.2011, 20:04. Просмотров 378. Ответов 6
Метки нет (Все метки)

Завтра мне кирдык если не сделаю!
Программа выдает одну ошибку, якобы в 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;
}
Помогите пожалуйста исправить!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2011, 20:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа выдает одну ошибку, якобы в 48 строчке (C++):

Программа выдает одну и ту же ошибку - C++
Программа выдает одну и ту же ошибку Parameter argc/argv never used Как ее исправить? Программный код на С++ написанный в Borland...

Выдает одну одну ошибку как испрвить - C++
Вот в такая ошибка: C:\Users\1\Lava 4.cpp(6) : error C2447: missing function header (old-style formal list?) #include &lt;conio.h&gt; ...

выдает одну ошибку не пойму как исправить .Ошибка : ||error: ld returned 1 exit status| - C++
подскажите пожалуйста... выдает одну ошибку не пойму как исправить .Ошибка : ||error: ld returned 1 exit status| #include &lt;iostream&gt; ...

Программа выдает ошибку - C++
Доброго времени суток, после компиляции программа дает сбой и выдает: Необработанное исключение в &quot;0x00051bd0&quot; в &quot;9.8.exe&quot;: 0xC0000005:...

Не запускается программа, выдает ошибку - C++
К теме прикрепил скрин ошибки. В начале Visual Studio советовал использовать strcpy_s вместо strcpy и выдавал предупреждение. ...

Программа с объединением, место целочисленного или вещественного числа,выдает постоянно одну и ту же цифру - C++
Программа с объединением, место целочисленного или вещественного числа,выдает постоянно одну и ту же цифру.. И ещё, помогите пожалуйста её...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
26.05.2011, 20:12 #2
у Вас else ни к чему не относится... Его либо не должно быть, либо блок, идущий от else, должен чему - то противопоставляться...

Добавлено через 1 минуту
Может быть, скобку "}" 36 строки нужно переместить на позицию после скобки в 47 строке?! Проверьте...
0
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
26.05.2011, 20:23  [ТС] #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;
}
0
lasbat
2 / 2 / 0
Регистрация: 06.05.2010
Сообщений: 18
26.05.2011, 20:41 #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 / 0
Регистрация: 15.09.2010
Сообщений: 45
26.05.2011, 21:11  [ТС] #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;
}
0
lasbat
2 / 2 / 0
Регистрация: 06.05.2010
Сообщений: 18
26.05.2011, 21:25 #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
Для продолжения нажмите любую клавишу . . .
все в порядке
0
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
26.05.2011, 21:36  [ТС] #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
Для продолжения нажмите любую клавишу . . .
все в порядке
все разобралась
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2011, 21:36
Привет! Вот еще темы с ответами:

подскажите, почему программа выдает ошибку? - C++
задание примерное такое: на заданном интервале посчитать значение ряда Тейлора с заданным шагом и точностью. Исправьте, если сможете....

программа выдает ошибку, как ее поправить - C++
Добрый вечер! программа выдает ошибку: функция &quot;int main(void)&quot; уже имеет текст реализации есть ли способ ее исправить??

Ошибку выдает программа во время работы - C++
Программа должна открывать файл и искать заданное пользователем слово Вот код: #include &lt;iostream&gt; #include &lt;string&gt; #include...

программа выдает ошибку при компиляции - C++
подскажите, пожалуста, в чем ошибка..При компиляции выскакивает ошибка undefined reference to 'Obrabotchik::SetListContinents()' ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.05.2011, 21:36
Ответ Создать тему
Опции темы

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