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

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

Войти
Регистрация
Восстановить пароль
 
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 407
#1

Поправить переменные в программе - C++

10.03.2014, 22:51. Просмотров 249. Ответов 6
Метки нет (Все метки)

Добрый вечер, уважаемые программисты. Есть программа для подсчёта математических уравнений, но там разные переменные и я никак не могу их соединить вместе, что бы всё работало. Очень буду благодарен за любую помощь.

Методические указания:
1. Найти корень уравнения 1.4^x - x =0 с точностью 10^(-5)
2. Начало отрезка А принять равным 0
3. Определить количество итераций при вычислении каждым методом
5. Вычислить метод хорд, ньютона, бисекций
6. Конец отрезка b вычислять:
а)задают начальное значение x=a+h, где h заданный шаг изменения x
б) вычислить значения f(a) и f(x)
в) если f(a) и f(x) имеют разные знаки, то принять b=x и прекратить вычисления, в противном случае принять x=x+h и начать вычисление заново

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
// lab_14.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}
 
#include <iostream.h>
#include <math.h>
#include <conio.h>
 
int fun_half(int a,int b, int esp)
{
    while (abs(b - a) > esp)
    {
        int i;
        c = (a + b)/2;
        if(f(b) * f(c) < 0)
            a = c;
        else
            b = c;
        i++;
    }
    cout << (a + b) / 2 << endl;
    cout<<"Kolvo iteracii"<<i;
                      }
 
int fun_new(int a, int b, int esp)
{ 
     if(f(a)*f2(a)>0) c=a;
    else c=b;
    do {
        c=c-f(c)/f1(c);
        n++;
    }
    while (fabs(f(c))>=eps);
        cout<<"c="<<c<<"\n";
        cout<<"n="<<n<<"\n";
}
 
int fun_xorda(int a, int b, int esp)
{
     if ((f(a)*f2(a)) < 0) {xm=a; xs=b;}
 else {xm=b; xs=a; }
 xn=xm;
 do{ 
     xm=xn;
xn=xm-(f(xm)*(xs-xm)/(f(xs)-f(xm)));  }
 while (fabs(xn-xm)>eps);
 cout<<"x="<<xn;}
}
 
void main()
{
    int a,b,x;
    int a=0;
    int esp=0.00001;
    for(x=a; ;x=a+h)
    { 
        if(f(a) * f(x) < 0)
            b=x; break;
        else x=x+h;
    }
        }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2014, 22:51     Поправить переменные в программе
Посмотрите здесь:

В моей программе есть глобальные переменные? - C++
int case_Menu(); void case_First(int ***a, int *height, int *width); void case_Second(int ***a, int *height, int *width); void...

Что означают переменные в моей программе? - C++
Что означает строчка в программе Data=сh+data, а точнее , что такое ch?

Создать программу обработки массивов структур используя структурные переменные и переменные типа объеденения - C++
Создать массив структур, каждая из которых состоит из следующих елементов: факультет, курс, группа, фамилия студента и екзаменационная...

Переменные,значение функции,вспомогательные переменные. - C++
1)Даны переменные A,B,C.Изменить их значения,переместив их содержимое из A-в B,B-в C,C-в A,и вывести новые значения переменных A,B,C. ...

Поправить ошибку - C++
Не догнал немного, подскажите, что тут не так написано? Ошибки: \source.cpp(6): error C2040: h: &quot;grup::train&quot; отличается по уровням...

поправить программу на С++ - C++
Программа не моя, свою написать уже не успеваю. Пожалуйста поправьте это так чтобы можно было запустить через borland C++, тоесть насколько...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Logumanov
15 / 11 / 2
Регистрация: 06.03.2014
Сообщений: 71
10.03.2014, 23:21     Поправить переменные в программе #2
Поправить переменные в функциях? Зачем? Просто передаешь в эти функции те параметры, которые тебе нужны, и всё.

Добавлено через 2 минуты
А, вообще, меня смущают два мэйна в программе. Скопируйте строки из main(), вставьте их в _tmain() и удалите main().
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 407
10.03.2014, 23:24  [ТС]     Поправить переменные в программе #3
Так вот я и пытаюсь разобраться в этих переменных, которые нужно использовать
alsav22
11.03.2014, 07:22
  #4

Не по теме:

Цитата Сообщение от Logumanov Посмотреть сообщение
Скопируйте строки из main(), вставьте их в _tmain() и удалите main().
Почему не наоборот? Кто это придумал: _tmain()? В стандарте такого нет...

Logumanov
15 / 11 / 2
Регистрация: 06.03.2014
Сообщений: 71
11.03.2014, 10:47     Поправить переменные в программе #5
Потому что это Visual Studio.
alsav22
11.03.2014, 10:58
  #6

Не по теме:

Цитата Сообщение от Logumanov Посмотреть сообщение
Потому что это Visual Studio
Даже Visual Studio стандарт понимает.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2014, 00:08     Поправить переменные в программе
Еще ссылки по теме:

Поправить код - C++
В этом коде нужно дописать, что пременная step&lt;=0 иначе errror. Как это сделать ? Вот код. #include &lt;iostream&gt; using namespace...

Поправить код программы - C++
Добрый день, уважаемые программисты. Нашёл нужный код для своего задания, а он не работает. Пытался его переделать,но ничего не вышло. Буду...

Необходимо поправить код - C++
в общем программа решает СЛАУ методом Жордана-Гаусса с выбором ведущего элемента, проблема в том, что код вроде бы правильный но выдает...

Нужно поправить код - C++
Вобщем есть файл txt с парами областей вот пример кусочек Volynska Rivnenska Volynska Lvivska Lvivska Volynska Lvivska...


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

Или воспользуйтесь поиском по форуму:
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 407
12.03.2014, 00:08  [ТС]     Поправить переменные в программе #7
Немного попоравил код, но всё равно не работает

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
// lab_14.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}
 
#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <iostream>
using namespace std;
 
int fun_half(int a,int b, int esp)
{
    while (abs(b - a) > esp)
    {
        int i;
       int c = (a + b)/2;
        if(f(b) * f(c) < 0)
            a = c;
        else
            b = c;
        i++;
    }
    cout << (a + b) / 2 << endl;
    cout<<"Kolvo iteracii"<<i;
                      }
 
int fun_new(int a, int b, int esp)
{ 
    int c;
     if(f(a)*f2(a)>0) c=a;
    else c=b;
    do {
        c=c-f(c)/f1(c);
       int n++;
    }
    while (fabs(f(c))>=esp);
        cout<<"c="<<c<<"\n";
        cout<<"n="<<n<<"\n";
}
 
int fun_xorda(int a, int b, int esp)
{
    double t;
   while (fabs(b-a)>=esp) 
   {
       t =( b*f(a)-f(b)*a)/(f(a)-f(b)); 
      t = a+(f(b)*(b-a))/(f(b)-f(a)); 
      if (f(a)*f(t)<0) {
         b=t;
     } else if (f(t)*f(b)<0) {
         a=t;
      } else 
         return t;
   }
   }
 
void main()
{
    int a,b,x;
    int a=0;
    int esp=0.00001;
    for(x=a; ;x=a+h)
    { 
        if(f(a) * f(x) < 0)
            b=x; break;
        else x=x+h;
    }
        }
Добавлено через 2 часа 10 минут
Еще поправил, но всё равно не пашет

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
// lab_14.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}
 
#include <math.h>
#include <conio.h>
#include <iostream>
using namespace std;
 
void fun_half(int a,int b, int esp);
void fun_new(int a, int b, int esp);
void fun_xorda(int a, int b, int esp);
double F1(double x);
double F2(double x);
double f(double x);
 
void fun_half(int a,int b, int esp)
{
    int temp;
    while (abs(b-a)>esp)
    {
       int c = (a + b)/2;
       if(f(b) * f(c) < 0)
            a = c;
        else 
            b = c;
      temp++;
            }
    cout<<(a + b)/2<<endl;
    cout<<"Kolvo iteracii"<<temp;
                      }
 
void fun_new(int a, int b, int esp)
{ 
    int c;
    int temp=0;
     if(f(a)*F2(a)>0) c=a;
    else c=b;
    do {
        c=c-f(c)/F1(c);
        temp++;
          }
    while (abs(f(c))>=esp);
        cout<<"c="<<c<<"\n";
        cout<<"temp="<<temp<<"\n";
}
 
double f(double x)
{
    return pow(1.4,x)-x;
}
 
double F1(double x)
{
    return pow(1.4,x)/log(1.4)-1;
}
 
double F2(double x)
{
    return pow(1.4,x)/(log(1.4)*log(1.4));
}
 
void fun_xorda(int a, int b, int esp)
{
    double t;
   while (abs(b-a)>=esp) 
   {
       t =( b*f(a)-f(b)*a)/(f(a)-f(b)); 
      t = a+(f(b)*(b-a))/(f(b)-f(a)); 
      if (f(a)*f(t)<0) {
         b=t;
     } else if (f(t)*f(b)<0) {
         a=t;
      }            }
    cout<<"x="<<t<<endl;
   }
   
int main()
{
    int b,x;
    int a=0;
    int h=0.01;
    int esp=0.00001;
    for(x=a; ;x=a+h)
    { 
        int A=pow(1.4,a)-a;
        int X=pow(1.4,x)-x;
        if(A * X < 0)
            {b=x; break;}
        else x=x+h;
    }
    fun_half (a,b,esp);
    fun_xorda(a,b,esp);
    fun_new(a,b,esp);
}
Добавлено через 1 час 19 минут
Помогите, пожалуйста
Yandex
Объявления
12.03.2014, 00:08     Поправить переменные в программе
Ответ Создать тему
Опции темы

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