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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
Fahrengeht
0 / 0 / 0
Регистрация: 12.07.2013
Сообщений: 13
#1

Ошибка С4700 - C++

12.07.2013, 19:03. Просмотров 2669. Ответов 23
Метки нет (Все метки)

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
#include <conio.h>
#include <math.h>
#include <iostream>
using namespace std;
 
 
double f(double x)
{
 
    return (2*x)-(3*log(x))-3;
}
 
double fi(double x, double L) 
{
 
    return  x+L*f(x);
}
 double f1(double x) 
 {
 
    return   2-(3/x);
}
 
double f2(double x)
{
 
    return   3/pow(x, 2);
}
 
void Dihotomia(double a,double b,double eps,double c,int n)
{
  n=0;
    do 
    {
        c=(a+b)/2;
        if (f(c)*f(a)<=0) b=c;
        else a=c;
        n+=1;
    }
    while (fabs(a-b)>=eps);
}
 
 
 
void Prost_iter(double x, double c,double b,double eps)
{
    int n=0;
    double L=-0.35;
    do 
    {
        c=fi(x,L);
        b=fabs(x-c);
        x=c;
        n+=1;
    }
    while (b>=eps);
        getchar();
}
 
void Newton(double a,double b,double c,double eps)
{
    int n=0;
    if(f(a)*f2(a)>0) c=a;
    else c=b;
    do 
    {
        c=c-f(c)/f1(c);
        n+=1;
    }
    while (fabs(f(c))>=eps);
        getchar();
}
int main()
{   
    setlocale(LC_ALL, "Russian" );
    int t,n;
    double a,b,c,eps,x,L=-0.35;
a:
    { 
    system("cls");
    cout<<"\t\t\t2x-3ln(x)-3"<<endl;
    cout<<"\t\t\tВыберете метод решения:"<<endl;
    cout<<"1--Метод дихотомии."<<endl;
    cout<<"2--Метод простых итераций."<<endl;
    cout<<"3--Метод ньютона."<<endl;
    cout<<"0--Возврат к выбору методов."<<endl;
    cin>>t;
    switch(t)
    { 
    case 1:
    cout<<"a="; cin>>a;
    cout<<"b="; cin>>b;
    cout<<"Точность ="; cin>>eps;
    cout<<"Корень ="<<c<<"\n";
    cout<<"Число итераций ="<<n<<"\n";
    cout<<"Значение функции ="<<f(c)<<"\n";
    Dihotomia(a,b,eps,c,n);
    break;
    case 2:
    cout<<"x="; cin>>x;
    cout<<"Точность ="; cin>>eps;
    cout<<"Корень ="<<c<<"\n";
    cout<<"Число итераций="<<n<<"\n";
    cout<<"Значение функции ="<<f(c)<<"\n";
    Prost_iter(a,b,x,eps);
    break;
    case 3:
    cout<<"a="; cin>>a;
    cout<<"b="; cin>>b;
    cout<<"Точность ="; cin>>eps;
    cout<<"Корень ="<<c<<"\n";
    cout<<"Число итераций ="<<n<<"\n";
    cout<<"Значение функции ="<<f(c)<<"\n";
    Newton(a,b,c,eps);
    break;
    }
    cin>>t;
    if(t==0)
    {
    goto a;
    }
}
}
warning C4700: использована неинициализированная локальная переменная "n"
warning C4700: использована неинициализированная локальная переменная "с"

Как я понял int main должна передавать значения(a,b) в void, в там же должен идти расчет, и void должен вернуть результаты в main (c,n).Как это реализовать ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2013, 19:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка С4700 (C++):

Ошибка С4700 uninitialized local variable e used - C++
csc

IIS- asp ошибка: HTTP 500.100 - Внутренняя ошибка сервера - ошибка ASP Internet Information Services - C# ASP.NET
Привет! Конфигурация win2000pro sp2, стандартный IIS, IE 5. При попытке обратиться к сценарию(asp) получаю ошибку: &lt;пропуск&gt; ......

1C 8.x Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка записи! - 1С
Доброго всем времени суток! подскажи пожалуйста как исправить ошибку: Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове...

Ошибка при добавлении в файл. Ошибка 101: Ошибка записи на диск (Error 101: Disk write error). - Turbo Pascal
Здравствуйте, возникла проблема такого плана. Нужно произвести добавление записи в файл, но после успешного создания и чтения вылазиет...

Django Ошибка доступа (403) Ошибка проверки CSRF. Запрос отклонён - Python
На хостинге разместил сайт и не могу войти в админку, т.к. возникает 403 ошибка &quot;Ошибка доступа (403). Ошибка проверки CSRF. Запрос...

Server 2003 Загружается до окна приветствия и вылетает ошибка: isass.exe - Системная ошибка - Windows Server
Ребята, помогите кто может... весь день бьюсь безрезультатно... с утра пришёл на работу а сервак не пингуется... загружается до...

23
Fahrengeht
0 / 0 / 0
Регистрация: 12.07.2013
Сообщений: 13
12.07.2013, 20:57  [ТС] #16
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
#include <conio.h>
#include <math.h>
#include <iostream>
using namespace std;
 
 
double f(double x)
{
 
    return (2*x)-(3*log(x))-3;
}
 
double fi(double x, double L) 
{
 
    return  x+L*f(x);
}
 double f1(double x) 
 {
 
    return   2-(3/x);
}
 
double f2(double x)
{
 
    return   3/pow(x, 2);
}
   int t,n;
    double a,b,c,eps,x,L=-0.35;
void Dihotomia(double a,double b,double eps,double c,int n)
{
  n=0;
    do 
    {
        c=(a+b)/2;
        if (f(c)*f(a)<=0) b=c;
        else a=c;
        n+=1;
    }
    while (fabs(a-b)>=eps);
}
 
 
 
void Prost_iter(double x, double c,double b,double eps)
{
    int n=0;
    double L=-0.35;
    do 
    {
        c=fi(x,L);
        b=fabs(x-c);
        x=c;
        n+=1;
    }
    while (b>=eps);
        getchar();
}
 
void Newton(double a,double b,double c,double eps)
{
    int n=0;
    if(f(a)*f2(a)>0) c=a;
    else c=b;
    do 
    {
        c=c-f(c)/f1(c);
        n+=1;
    }
    while (fabs(f(c))>=eps);
        getchar();
}
int main()
{   
    setlocale(LC_ALL, "Russian" );
    int t,n;
    double a,b,c,eps,x,L=-0.35;
a:
    { 
    system("cls");
    cout<<"\t\t\t2x-3ln(x)-3"<<endl;
    cout<<"\t\t\tВыберете метод решения:"<<endl;
    cout<<"1--Метод дихотомии."<<endl;
    cout<<"2--Метод простых итераций."<<endl;
    cout<<"3--Метод ньютона."<<endl;
    cout<<"0--Возврат к выбору методов."<<endl;
    cin>>t;
    switch(t)
    { 
    case 1:
    cout<<"a="; cin>>a;
    cout<<"b="; cin>>b;
    cout<<"Точность ="; cin>>eps;
    cout<<"Корень ="<<c<<"\n";
    cout<<"Число итераций ="<<n<<"\n";
    cout<<"Значение функции ="<<f(c)<<"\n";
    Dihotomia(a,b,eps,c,n);
    break;
    case 2:
    cout<<"x="; cin>>x;
    cout<<"Точность ="; cin>>eps;
    cout<<"Корень ="<<c<<"\n";
    cout<<"Число итераций="<<n<<"\n";
    cout<<"Значение функции ="<<f(c)<<"\n";
    Prost_iter(a,b,x,eps);
    break;
    case 3:
    cout<<"a="; cin>>a;
    cout<<"b="; cin>>b;
    cout<<"Точность ="; cin>>eps;
    cout<<"Корень ="<<c<<"\n";
    cout<<"Число итераций ="<<n<<"\n";
    cout<<"Значение функции ="<<f(c)<<"\n";
    Newton(a,b,c,eps);
    break;
    }
    cin>>t;
    if(t==0)
    {
    goto a;
    }
}
}
Добавлено через 1 минуту
эти значения передаются процедуре,идет расчет,и результаты расчета (с и н) должны вернуться в майн
0
Ezembi
100 / 87 / 3
Регистрация: 29.05.2013
Сообщений: 227
12.07.2013, 20:59 #17
Удалите из main int t,n; double a,b,c,eps,x,L=-0.35; т.к. здесь это уже другие переменные, локальные
0
Fahrengeht
0 / 0 / 0
Регистрация: 12.07.2013
Сообщений: 13
12.07.2013, 21:01  [ТС] #18
непомогает
0
Ezembi
100 / 87 / 3
Регистрация: 29.05.2013
Сообщений: 227
12.07.2013, 21:07 #19
Цитата Сообщение от Fahrengeht Посмотреть сообщение
cout<<"a="; cin>>a;
* * cout<<"b="; cin>>b;
* * cout<<"Точность ="; cin>>eps;
* * cout<<"Корень ="<<c<<"\n";
* * cout<<"Число итераций ="<<n<<"\n";
* * cout<<"Значение функции ="<<f(c)<<"\n";
* * Dihotomia(a,b,eps,c,n);
Вы сначала выдаёте на экран "подсчитанные" значения, а только потом их считаете
C
1
2
3
4
5
6
7
    cout<<"a="; cin>>a;
    cout<<"b="; cin>>b;
    cout<<"Точность ="; cin>>eps;
    Dihotomia(a,b,eps,c,n);
    cout<<"Корень ="<<c<<"\n";
    cout<<"Число итераций ="<<n<<"\n";
    cout<<"Значение функции ="<<f(c)<<"\n";
0
Fahrengeht
0 / 0 / 0
Регистрация: 12.07.2013
Сообщений: 13
12.07.2013, 21:10  [ТС] #20
А какая разница,темболее не помогает.
0
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
12.07.2013, 21:12 #21
Цитата Сообщение от Fahrengeht Посмотреть сообщение
и void должен вернуть результаты в main (c,n).Как это реализовать
Передавайте параметры по ссылке
void Dihotomia(double a,double b,double eps,double &c,int &n)
1
Fahrengeht
0 / 0 / 0
Регистрация: 12.07.2013
Сообщений: 13
12.07.2013, 21:14  [ТС] #22
Спасибо,помогло.
0
coloc
12.07.2013, 21:14
  #23

Не по теме:

Fahrengeht, никогда не пиши спагетти код...

0
Ezembi
100 / 87 / 3
Регистрация: 29.05.2013
Сообщений: 227
12.07.2013, 21:17 #24
Цитата Сообщение от Fahrengeht Посмотреть сообщение
А какая разница
Так в переменных, которые вы считаете, сначала храниться мусор, который вы печатаете на экране, а потом только подсчитываете их значения

Добавлено через 2 минуты
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
double f(double x)
{
 
    return (2*x)-(3*log(x))-3;
}
 
double fi(double x, double L) 
{
 
    return  x+L*f(x);
}
 double f1(double x) 
 {
 
    return   2-(3/x);
}
 
double f2(double x)
{
 
    return   3/pow(x, 2);
}
   int t,n;
    double a,b,c,eps,x,L=-0.35;
void Dihotomia(double a,double b,double eps)
{
  n=0;
  c=0;
    do 
    {
        c=(a+b)/2;
        if (f(c)*f(a)<=0) b=c;
        else a=c;
        n+=1;
    }
    while (fabs(a-b)>=eps);
}
 
 
 
void Prost_iter(double x,double eps)
{
    n=0;
    c=0;
    double L=-0.35;
    do 
    {
        c=fi(x,L);
        b=fabs(x-c);
        x=c;
        n+=1;
    }
    while (b>=eps);
        getchar();
}
 
void Newton(double a,double b,double eps)
{
    n=0;
    c=0;
    if(f(a)*f2(a)>0) c=a;
    else c=b;
    do 
    {
        c=c-f(c)/f1(c);
        n+=1;
    }
    while (fabs(f(c))>=eps);
        getchar();
}
int main()
{   
    setlocale(LC_ALL, "Russian" );
a:
    { 
    system("cls");
    cout<<"\t\t\t2x-3ln(x)-3"<<endl;
    cout<<"\t\t\tВыберете метод решения:"<<endl;
    cout<<"1--Метод дихотомии."<<endl;
    cout<<"2--Метод простых итераций."<<endl;
    cout<<"3--Метод ньютона."<<endl;
    cout<<"0--Возврат к выбору методов."<<endl;
    cin>>t;
    switch(t)
    { 
    case 1:
    cout<<"a="; cin>>a;
    cout<<"b="; cin>>b;
    cout<<"Точность ="; cin>>eps;
    Dihotomia(a,b,eps);
    cout<<"Корень ="<<c<<"\n";
    cout<<"Число итераций ="<<n<<"\n";
    cout<<"Значение функции ="<<f(c)<<"\n";
    
    break;
    case 2:
    cout<<"x="; cin>>x;
    cout<<"Точность ="; cin>>eps;
    Prost_iter(x,eps);
    cout<<"Корень ="<<c<<"\n";
    cout<<"Число итераций="<<n<<"\n";
    cout<<"Значение функции ="<<f(c)<<"\n";
    
    break;
    case 3:
    cout<<"a="; cin>>a;
    cout<<"b="; cin>>b;
    cout<<"Точность ="; cin>>eps;
    Newton(a,b,eps);
    cout<<"Корень ="<<c<<"\n";
    cout<<"Число итераций ="<<n<<"\n";
    cout<<"Значение функции ="<<f(c)<<"\n";
    
    break;
    }
    cin>>t;
    if(t==0)
    {
    goto a;
    }
}
}
всё вроде норм считает
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2013, 21:17
Привет! Вот еще темы с ответами:

Interbase Ошибка SQL запроса , в базе работает, а через IBQuery в Delphi ошибка - Delphi БД
В Combobox загружены имена организаций. Нужно выполнить запрос на вывод всех полей таблицы организаций при выборе имени в Combobox. При...

Ошибка разбора XML/ Ошибка при вызове метода контекста (Прочитать) - 1С
1C 8.2 Документооборот КОРП 1.2 Текст ошибки {ОбщийМодуль.АвтозаполнениеШаблоновФайловКлиентСервер.Модуль(616)}: Ошибка при вызове...

Ошибка HTTP 500 - внутреняя ошибка сервера при отправке почты. - C# ASP.NET
Я пытаюсь отправить почту и присоединяю к ней письма Вот часть страницы Dim myMail Set myMail = CreateObject('CDONTS.NewMail') ...

ASP: Response.Redirect - не работает, ошибка `500 - Внутренняя ошибка сервера' - C# ASP.NET
Всем привет! Есть в ASP-сраничке такой код: Response.Redirect 'page1.asp?ReturnTo=page2.asp' Эта конструкция работала на IIS 4,...


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

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

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