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

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

Войти
Регистрация
Восстановить пароль
 
qwer1234
13 / 13 / 3
Регистрация: 30.10.2012
Сообщений: 463
#1

Исправьте код - C++

27.03.2014, 20:08. Просмотров 305. Ответов 9
Метки нет (Все метки)

Подскажите где я ошибся или что то пропустил в коде

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
#include <iostream>
using namespace std;
 
 
 
bool converge(double *xk, double *xkp)
{
    for (int i = 0; i < n; i++) 
    {
        if (fabs(xk[i] - xkp[i]) >= eps) 
            return false;
    }
    return true;
}
 
/*
    Õîä ìåòîäГ*, ãäå:
    a[n][n] - ГЊГ*òðèöГ* êîýôôèöèåГ*òîâ
    x[n], p[n] - Г’ГҐГЄГіГ№ГҐГҐ ГЁ ïðåäûäóùåå ðåøåГ*ГЁГї
    b[n] - Ñòîëáåö ГЇГ°Г*âûõ Г·Г*Г±ГІГҐГ©
    Âñå ïåðå÷èñëåГ*Г*ûå Г¬Г*Г±Г±ГЁГўГ» ГўГҐГ№ГҐГ±ГІГўГҐГ*Г*ûå ГЁ
    äîëæГ*Г» áûòü îïðåäåëåГ*Г» Гў îñГ*îâГ*îé ïðîãðГ*ììå,
    ГІГ*êæå Гў Г¬Г*Г±Г±ГЁГў x[n] ñëåäóåò ïîìåñòèòü Г*Г*Г·Г*ëüГ*îå
    ïðèáëèæåГ*ГЁГҐ ñòîëáöГ* ðåøåГ*ГЁГ© (Г*Г*ïðèìåð, ГўГ±ГҐ Г*óëè)
*/
 
do
{
    for (int i = 0; i < n; i++)
        p[i] = x[i];
 
    for (int i = 0; i < n; i++)
    {
        double var = 0;
        for (int j = 0; j < i; j++)
            var += (a[i][j] * x[j]);
        for (int j = i + 1; j < n; j++)
            var += (a[i][j] * p[j]);
        x[i] = (b[i] - var) / a[i][i];
    }
}
while (!converge(x, p));
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2014, 20:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Исправьте код (C++):

исправьте код - C++
мне нужно преобразовать мат. функцию в с++и создать код что б работал без ошибок, я сделал так: f(x,y,z)= abs(sin*x+sin*y)/(x*x+y*y+z*z);...

исправьте код - C++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; class rational { private: int a,b; ...

Исправьте код - C++
Код складывает два вектора и находит суму векторов и выводит их в третьем векторе пример: v1= 1 2 3 v2= 2 1 3 ...

исправьте код - C++
Написал код нахождение макс. элемента вектора не работает выводит фигню... исправьте плиз #include &lt;cstdlib&gt; #include &lt;iostream&gt; ...

исправьте код - C++
вот задача: Найти значение выражения arcsin(L)+arccos(L) при следующих значениях L:-корень(2)/2;корень(3)/3 L-альфа вот попробовал и...

Исправьте код - C++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; using namespace std; int main(void) { string...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Progers
New to C++
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
27.03.2014, 20:24 #2
А какая у вас ошибка?
0
Ev_Hyper
Заблокирован
27.03.2014, 20:25 #3
qwer1234, а где main()? И что вы хотите сделать?
0
qwer1234
13 / 13 / 3
Регистрация: 30.10.2012
Сообщений: 463
27.03.2014, 20:31  [ТС] #4
Progers, LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/ûóö.exe : fatal error LNK1120: 1 unresolved externals
0
Progers
New to C++
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
27.03.2014, 20:31 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
do
{
    for (int i = 0; i < n; i++)
        p[i] = x[i];
 
    for (int i = 0; i < n; i++)
    {
        double var = 0;
        for (int j = 0; j < i; j++)
            var += (a[i][j] * x[j]);
        for (int j = i + 1; j < n; j++)
            var += (a[i][j] * p[j]);
        x[i] = (b[i] - var) / a[i][i];
    }
}
while (!converge(x, p));
Это добро "засуньте" в функцию.
0
qwer1234
13 / 13 / 3
Регистрация: 30.10.2012
Сообщений: 463
27.03.2014, 20:32  [ТС] #6
Ev_Hyper, Метод Гаусса — Зейделя. Отладьте программу

Добавлено через 32 секунды
Progers, можно полностью код, ато я в С++ не шарю нечего
0
Progers
New to C++
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
27.03.2014, 20:36 #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
#include <iostream>
using namespace std;
bool converge(double *xk, double *xkp)
{
    for (int i = 0; i < n; i++) 
    {
        if (fabs(xk[i] - xkp[i]) >= eps) 
            return false;
    }
    return true;
}
 
/*
    Ход метода, где:
    a[n][n] - Матрица коэффициентов
    x[n], p[n] - Текущее и предыдущее решения
    b[n] - Столбец правых частей
    Все перечисленные массивы вещественные и
    должны быть определены в основной программе,
    также в массив x[n] следует поместить начальное
    приближение столбца решений (например, все нули)
*/
 int main()
{
do
{
    for (int i = 0; i < n; i++)
        p[i] = x[i];
 
    for (int i = 0; i < n; i++)
    {
        double var = 0;
        for (int j = 0; j < i; j++)
            var += (a[i][j] * x[j]);
        for (int j = i + 1; j < n; j++)
            var += (a[i][j] * p[j]);
        x[i] = (b[i] - var) / a[i][i];
    }
}
while (!converge(x, p));
return 0;
}
У вас не обявлены переменные. Надеюсь вы умейте их обьявлять.
1
qwer1234
13 / 13 / 3
Регистрация: 30.10.2012
Сообщений: 463
27.03.2014, 21:12  [ТС] #8
Progers, error C2065: 'n' : undeclared identifier
D:\Документи\С++\1\1.cpp(7) : error C2065: 'fabs' : undeclared identifier
D:\Документи\С++\1\1.cpp(7) : error C2065: 'eps' : undeclared identifier
D:\Документи\С++\1\1.cpp(30) : error C2065: 'p' : undeclared identifier
D:\Документи\С++\1\1.cpp(30) : error C2109: subscript requires array or pointer type
D:\Документи\С++\1\1.cpp(30) : error C2065: 'x' : undeclared identifier
D:\Документи\С++\1\1.cpp(30) : error C2109: subscript requires array or pointer type
D:\Документи\С++\1\1.cpp(30) : error C2106: '=' : left operand must be l-value
D:\Документи\С++\1\1.cpp(36) : error C2065: 'a' : undeclared identifier
D:\Документи\С++\1\1.cpp(36) : error C2109: subscript requires array or pointer type
D:\Документи\С++\1\1.cpp(36) : error C2109: subscript requires array or pointer type
D:\Документи\С++\1\1.cpp(36) : error C2109: subscript requires array or pointer type
D:\Документи\С++\1\1.cpp(38) : error C2109: subscript requires array or pointer type
D:\Документи\С++\1\1.cpp(38) : error C2109: subscript requires array or pointer type
D:\Документи\С++\1\1.cpp(38) : error C2109: subscript requires array or pointer type
D:\Документи\С++\1\1.cpp(39) : error C2109: subscript requires array or pointer type
D:\Документи\С++\1\1.cpp(39) : error C2065: 'b' : undeclared identifier
D:\Документи\С++\1\1.cpp(39) : error C2109: subscript requires array or pointer type
D:\Документи\С++\1\1.cpp(39) : error C2109: subscript requires array or pointer type
D:\Документи\С++\1\1.cpp(39) : error C2109: subscript requires array or pointer type
D:\Документи\С++\1\1.cpp(39) : error C2106: '=' : left operand must be l-value
Error executing cl.exe.
0
Progers
New to C++
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
27.03.2014, 21:31 #9
Какаята хрень получилась:
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
#include <iostream>
using namespace std;
int n = 0;
int eps = 0;
bool converge(double xk[1000][1000], double xkp[1000][1000])
{
  for(int k = 0; k < n; k++)
  for (int i = 0; i < n; i++) 
    {
      if ((xk[k][i] - xkp[k][i]) >= eps) 
    return false;
    }
  return true;
}
 
/*
    Ход метода, где:
    a[n][n] - Матрица коэффициентов
    x[n], p[n] - Текущее и предыдущее решения
    b[n] - Столбец правых частей
    Все перечисленные массивы вещественные и
    должны быть определены в основной программе,
    также в массив x[n] следует поместить начальное
    приближение столбца решений (например, все нули)
*/
int main()
{
  double p[1000][1000] , x[1000][1000] , a[1000][1000],b[1000][1000];
  cout << "Input n: "; cin >> n;
  cout << "Input eps: "; cin >> eps;
  
do
  {
    for(int k = 0; k < n; k++)
    for (int i = 0; i < n; i++)
      p[k][i] = x[k][i];
 
    for (int i = 0; i < n; i++)
      {
        double var = 0;
        for (int j = 0; j < i; j++)
      {
      var += (a[i][j] * x[i][j]);
      }
        for (int j = i + 1; j < n; j++)
      {
      var += (a[i][j] * p[i][j]);
        x[i][j] = (b[i][j] - var) / a[i][j];
      }
      }
  }
 while (!converge(x, p));
 return 0;
}
0
Di3go
Аноним
4 / 4 / 2
Регистрация: 15.12.2013
Сообщений: 148
Завершенные тесты: 2
27.03.2014, 23:17 #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
#include <iostream>
using namespace std;
 
 
 
bool converge(double *xk, double *xkp)
{
    for (int i = 0; i < n; i++) 
    {
        if (fabs(xk[i] - xkp[i]) >= eps) 
            return false;
    }
    return true;
}
 
/*
    Ход метода, где:
    a[n][n] - Матрица коэффициентов
    x[n], p[n] - Текущее и предыдущее решения
    b[n] - Столбец правых частей
    Все перечисленные массивы вещественные и
    должны быть определены в основной программе,
    также в массив x[n] следует поместить начальное
    приближение столбца решений (например, все нули)
*/
int main(){
do
{
    for (int i = 0; i < n; i++)
        p[i] = x[i];
 
    for (int i = 0; i < n; i++)
    {
        double var = 0;
        for (int j = 0; j < i; j++)
            var += (a[i][j] * x[j]);
        for (int j = i + 1; j < n; j++)
            var += (a[i][j] * p[j]);
        x[i] = (b[i] - var) / a[i][i];
    }
}
while (!converge(x, p));
// ...
return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2014, 23:17
Привет! Вот еще темы с ответами:

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

Исправьте код пожалуйста! - C++
Нужно чтобы вывод начинался с самого нижнего левого элемента \ #include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; // расширение функционала...

Исправьте исходный код - C++
Ребят, я нубас в с++ и по этому прошу вас поправьте мой исход что бы он работал

Исправьте пожалуйста код - C++
Есть код , как сделать чтобы числа a,b,c вводились с клавиатуры... (Программа находит булеан чисел a,b,c) Код программы: ...


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

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

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