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

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

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

Проблемы с кодом - C++

08.12.2012, 21:45. Просмотров 563. Ответов 17
Метки нет (Все метки)

Не компилируется код, пишет ошибки, причем очень много, пожалуйста, посмотрите, что тут нужно исправить если нужны коды ошибок, я напишу!Компилятор турбоси30

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
#define N 20
int main( void )
{
  double mas[N] [N + 1];
  double x[N]; //Корни системы
  int otv[N]; //Отвечает за порядок корней
  int i, j, k, n;
  //Ввод данных
  clrscr();
  do
  {
    printf( "Введите число уравнений системы: " );
    scanf( "%d", & n );
    if ( N < n )
      printf( "Слишком большое число уравнений. Повторите ввод\n" );
  }
  while ( N < n );
  printf( "Введите систему:\n" );
  for ( i = 0; i < n; i++ )
    for ( j = 0; j < n + 1; j++ )
      scanf( "%lf", & mas[i] [j] );
  //Вывод введенной системы
  clrscr();
  printf( "Система:\n" );
  for ( i = 0; i < n; i++ )
  {
    for ( j = 0; j < n + 1; j++ )
      printf( "%7.2f ", mas[i] [j] );
    printf( "\n" );
  }
  //Сначала все корни по порядку
  for ( i = 0; i < n + 1; i++ )
    otv[i] = i;
  //Прямой ход метода Гаусса
  for ( k = 0; k < n; k++ )
  { //На какой позиции должен стоять главный элемент
    glavelem( k, mas, n, otv ); //Установка главного элемента
    if ( fabs( mas[k] [k] ) < 0.0001 )
    {
      printf( "Система не имеет единственного решения" );
      return ( 0 );
    }
    for ( j = n; j >= k; j-- )
      mas[k] [j] /= mas[k] [k];
    for ( i = k + 1; i < n; i++ )
      for ( j = n; j >= k; j-- )
        mas[i] [j] -= mas[k] [j] * mas[i] [k];
  }
  //Обратный ход
  for ( i = 0; i < n; i++ )
    x[i] = mas[i] [n];
  for ( i = n - 2; i >= 0; i-- )
    for ( j = i + 1; j < n; j++ )
      x[i] -= x[j] * mas[i] [j];
  //Вывод результата
  printf( "Ответ:\n" );
  for ( i = 0; i < n; i++ )
    for ( j = 0; j < n; j++ )
      if ( i == otv[j] )
      { //Расставляем корни по порядку
        printf( "%f\n", x[j] );
        break;
      }
  return ( 0 );
}
//----------------------------------------------
//Описание  функции
//----------------------------------------------
void glavelem( int k, double mas[] [N + 1], int n, int otv[] )
{
  int i, j, i_max = k, j_max = k;
  double temp;
  //Ищем максимальный по модулю элемент
  for ( i = k; i < n; i++ )
    for ( j = k; j < n; j++ )
      if ( fabs( mas[i_max] [j_max] ) < fabs( mas[i] [j] ) )
      {
        i_max = i;
        j_max = j;
      }
  //Переставляем строки
  for ( j = k; j < n + 1; j++ )
  {
    temp = mas[k] [j];
    mas[k] [j] = mas[i_max] [j];
    mas[i_max] [j] = temp;
  }
  //Переставляем столбцы
  for ( i = 0; i < n; i++ )
  {
    temp = mas[i] [k];
    mas[i] [k] = mas[i] [j_max];
    mas[i] [j_max] = temp;
  }
  //Учитываем изменение порядка корней
  i = otv[k];
  otv[k] = otv[j_max];
  otv[j_max] = i;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2012, 21:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблемы с кодом (C++):

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

Проблемы с кодом. Ругается на strcpy. Хелпните - C++
Программа по удалению последнего столбца из матрицы. #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;windows.h&gt; using...

Проблемы с кодом Необработанное исключение по адресу 0x00A85A9B - C++
Всем доброго времени суток! Значит есть задание сделать программу: К миниЭВМ подключено четыре терминала, с которых осуществляется...

Проблемма с кодом - C++
Помогите пожалуйста,если кто знает, нужно перевести этот код на С++. procedure OGI(R,S,M,N:integer;Var A:matrix); {R,S –...

Не получается с кодом - C++
Даны целые числа a1, a2, a3. Получить целочисленную матрицу b каждый элемент, которой определяется по следующей формуле b=a-3a,...

Трудности с кодом - C++
Выдает такие ошибки: Error (active) &quot;exit&quot; is ambiguous Error C2365 'exit': redefinition; previous definition was 'function' ...

17
Nijaz
34 / 34 / 9
Регистрация: 16.12.2010
Сообщений: 100
08.12.2012, 22:01 #2
библиотеки подключи: stdio.h, stdlib.h и math.h
1
Максим1827
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 64
08.12.2012, 22:02  [ТС] #3
их уже подключил, часть ошибок ушла, но все равно еще есть
0
Nijaz
34 / 34 / 9
Регистрация: 16.12.2010
Сообщений: 100
08.12.2012, 22:03 #4
clrscr() убери
1
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,187
08.12.2012, 22:07 #5
перед main опиши свои функции
C++
1
2
3
void glavelem( int k, double mas[] [N + 1], int n, int otv[] );
int main( void )
{....................
0
Максим1827
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 64
08.12.2012, 22:08  [ТС] #6
ошибки следующие
Function 'glavelem' should have a prototype
If statement missing )
Function should return a value
Declaration terminated incorrectly
0
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,187
08.12.2012, 22:09 #7
Цитата Сообщение от Максим1827 Посмотреть сообщение
Function 'glavelem' should have a prototype
еще раз
Цитата Сообщение от ValeryS Посмотреть сообщение
перед main опиши свои функции
0
Максим1827
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 64
08.12.2012, 22:12  [ТС] #8
с описанием ошибка пропала!спасибо огромное!а вот оставшиеся ошибки выделяют мне циклы for и скобочки такие {
0
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,187
08.12.2012, 22:19 #9
Цитата Сообщение от Максим1827 Посмотреть сообщение
мне циклы for и скобочки такие {
два раза пересмотрел криминала не вижу
приведи исправленный листинг и ошибки
0
Максим1827
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 64
08.12.2012, 22:45  [ТС] #10
привожу ошибки и выделяю красным где он ее показывает
1) if statement missing )
2)function should return a value
3) declaration terminated incorrectly
4)declaration syntax error
5) variable 'i' is initialized more than once
6)declaration syntax error

7) declaration terminated incorrectly
8)variable 'i' is initialized more than once
9)declaration syntax error
10)variable 'i' is initialized more than once
11)declaration syntax error

12)declaration syntax error

13)style of function is now obsolete
14) ) expected

15) declaration terminated incorrectly
16)variable 'i' is initialized more than once
17)declaration syntax error
18)variable 'j' is initialized more than once
19)declaration syntax error
20)variable 'j' is initialized more than once
21)declaration syntax error
22)unexpected }

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
125
126
127
128
129
#define N 20
#include <CONIO.H>
#include <STDIO.H>
#include <MATH.H>
 
void glavelem(int k,double mas[][N+1],int n,int otv[]);
 
int main(void)
 
 
{
 
double mas[N] [N+1];
double x[N];
int otv[N];
int i,j,k,n;
clrscr();
do
 
{
 
printf("VVedite 4islo ypaBHeHuu cucTeMbl");
scanf("%d",&n);
if(N<n)
printf("CJluIIIkoM 6oJlbIIIoe 4ucJlo ypaBHeHuu`.IIoBTopuTe BBog\n");
 
}
 
while(N<n);
printf("BBeguTe cucTemy\n");
for(i=0;i<n;i++)
for(j=0;j<n+1;j++)
scanf("%lf",&mas[i][j]);
clrscr();
printf("CuCTeMa\n");
for(i=0;i<n;i++)
 
{
 
for(j=0;j<n+1;j++)
printf("%7.2f",mas[i][j]);
printf("\n");
 
}
 
for(i=0;i<n+1;i++)
otv[i]=i;
for(k=0;k<n;k++)
glavelem(k,mas,n,otv);
if(fabs(mas[k][k]<0.0001)
 
[COLOR="Red"]{     //1)[/COLOR]
 
printf("CucTeMa He uMeeT eguHcTBeHHoro PeIIIeHu9l");
return(0);
 
}
 
for(j=n,j>=k,j--)
mas[k][j]/=mas[k][k];
for(i=k+1;i<n;i++)
for(j=n;j>=k;j--)
mas[i][j]-=mas[k][j]*mas[i][k];
 
[COLOR="red"]} //2)[/COLOR]
 
[COLOR="red"]for(i=0;i<n;i++)  //3) выделяет первую скобку, 4) выделяет n, 5),6) выделяет последнюю скобку [/COLOR]
x[i]=mas[i][n];
[COLOR="red"]for(i=n-2;i>=0;i--) //7)выделяет первую скобку, 8),9) выделяет 0, 10),11) выделяет последнюю скобку[/COLOR]
[COLOR="red"]for(j=i+1;j<n:j++) //12)выделяет n[/COLOR]
x[i]-=x[j]*mas[i][j];
[COLOR="red"]printf("otvet\n"); //13) выделяет первые ковычки, 14) выделяет o[/COLOR]
[COLOR="red"]for(i=0;i<n;i++) //15) выделяет первую скобку, 16) выделяет n, 17) выделяет последнюю скобку[/COLOR]
[COLOR="red"]for(j=0;j<n;j++) //18),19) выделяет n , 20),21)выделяет последнюю скобку[/COLOR]
if(i==otv[j])
 
{
 
printf("%f\n",x[j]);
break;
 
}
 
return(0);
 
[COLOR="red"]} //22) выделяет скобку[/COLOR]
 
void glavelem(int k, double mas[][N+1], int n, int otv[])
 
{
 
int i,j,i_max=k,j_max=k;
double temp;
for(i=k;i<n;i++)
for(j=k;j<n;j++)
if(fabs(mas[i_max][j_max])<fabs(mas[i][j]))
 
{
 
i_max=i;
j_max=j;
 
}
 
for(j=k;j<n+1;j++)
 
{
 
temp=mas[k][j];
mas[k][j]=mas[i_max][j];
mas[i_max][j]=temp;
 
}
 
for(i=0;i<n;i++)
 
{
 
temp=mas[i][k];
mas[i][k]=mas[i][j_max];
mas[i][j_max]=temp;
 
}
 
i=otv[k];
otv[k]=otv[j_max];
otv[j_max]=i;
 
}
Добавлено через 1 минуту
[COLOR="Red"] этот тег добавил с мыслью о том что он подсветит те места в которых я его поставил,но этого не произошло, поэтому не обращайте на него внимания!и еще, огромное спасибо за то что тратите время на решение моих проблем!
0
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,187
08.12.2012, 22:51 #11
Цитата Сообщение от Максим1827 Посмотреть сообщение
50 if(fabs(mas[k][k]<0.0001)
скобки подсчитай
C++
1
if(fabs(mas[k][k]<0.0001))
0
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
08.12.2012, 22:51 #12
1.
C++
1
if(fabs(mas[k][k]<0.0001))
2. } судя по всему лишняя. попробуй удалить, многие ошибки должны пропасть
1
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,187
08.12.2012, 22:57 #13
остальные могут быть наведенные(из за этой скобки)
оставшиеся ошибки приведи и пиши номер строки листинга (который в посте)

Добавлено через 3 минуты
Цитата Сообщение от ZoRT Посмотреть сообщение
} судя по всему лишняя. попробуй удалить, многие ошибки должны пропасть
со скобками надо аккуратнее одну ошибку исправил компильнул потом другую
иначе можно еще больше ошибок получить
0
Максим1827
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 64
08.12.2012, 23:08  [ТС] #14
а у меня в коде, точно также как в вашем примере!

Добавлено через 4 минуты
отлично!скобку убрал, осталось 1 ошибка:

52: If statement missing )
0
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
08.12.2012, 23:08 #15
Цитата Сообщение от Максим1827 Посмотреть сообщение
а у меня в коде, точно также как в вашем примере!
вероятно так
C++
1
if(fabs(mas[k][k])<0.0001)
1
08.12.2012, 23:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2012, 23:08
Привет! Вот еще темы с ответами:

подскажите с кодом - C++
Всем привет!!!У меня вопрос вот задание #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main...

Разобраться с кодом - C++
Есть готовый код программы, решающей следующую задачу: Для двух прямолинейных кусков круглой трубы известны их внешние диаметры,...

Помогите с кодом - C++
Всем доброго времени суток. Вот задали написать прогу для сравнения 3-х чисел введённых с клавиатуры, вроде всё нормально, только...

C++ что-то не то с кодом - C++
Помогите пожалуйста.Задание легкое но у меня что-то не работает. #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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