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

Не могу найти ошибку в коде, двумерные и одномерные массивы - C++

Восстановить пароль Регистрация
 
Baulgar
0 / 0 / 0
Регистрация: 05.06.2014
Сообщений: 4
05.06.2014, 19:42     Не могу найти ошибку в коде, двумерные и одномерные массивы #1
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# include <iostream.h>
# include <iomanip.h>
# include <conio.h>
# include <fstream.h>
# define m 10
# define n 5
# define k 50
 
       float a[m][n],  x[k],  y[k];   // Les variables globales
           
            // La fonction pour l’entrГ©e d’une matrice par le clavier
 
           void inmatrc (  )
{
      short i, j;
 
   cout<<setw(20)<<" "<<"Faites entrer une matrice"<<endl;
            for (i=0; i<m; i++)
            for (j=0; j<n; j++)
               cin>>a[i][j];
}
                      
                      // La fonction pour l’entrГ©e d’une matrice d’un fichier externe        
                      
                      void inmatrf (char h[])
{
      short i, j;
      fstream f;
 
      f.open(h,ios::in);
               for (i=0; i<m; i++)
            for (j=0; j<n; j++)
        f>>a[i][j];
      f.close();
}
           
           // La fonction pour feare sortir une matrice sur l’Г©cran    
         
           void outmatr (  )
{
     short i, j;
       cout<<setiosflags(ios::showpoint);
       for (i=0; i<m; i++)
     {
               cout<<setw(15)<<" ";
         for (j=0; j<n; j++)
               cout<<setprecision(2)<<setw(6)<<a[i][j]<<" ";
         cout<<endl;
     }
}
    
          // La fonction pour feare sortir une matrice dans un fichier externe
 
         void outmatrf (fstream & f1)
{
     short i, j;
         f1<<setiosflags(ios::showpoint);
         for (i=0; i<m; i++) 
        {
                     f1<<setw(15)<<" ";          
                        for (j=0; j<n; j++)
                           f1<<setprecision(2)<<setw(7)<<a[i][j]<<" ";
                           f1<<endl;
              }  
}
 
            // La fonction pour la crГ©ation de la sГ©rie des nombres x[] des elements des                               
           lignes d’une matrice //         
 
                  void seriex()
 
{
             short i, j, s=0 ;
             
                  for (i=0; i<m; i++)
                  for (j=0; j<n; j++)
                     { 
                            x[s]=a[i][j]; 
                              s++;
                     }
}
                  
                   // La foncion pour la crГ©ation de la sГ©rie des nombres y[] des Г©lГ©ments   
                   des colonnes d’une matrice
 
                         void seriey() 
        
{
             short i, j, s=0;
              
                  for (j=0; j<n; j++) 
                  for (i=0; i<m; i++)
                      {
                            y[s]=a[i][j]; 
                             s++;
                      }
}
         
                 // La fonction pour feare sortir une sГ©rie des nomdres sur l’Г©cran
 
                 void outserie (float z[k])
         
{
              short i; 
                    cout<<setiosflags(ios::showpoint); 
                    for(i=0; i<k; i++)
                      cout<<setprecision(2)<<setw(6)<<z[i]<<" "; 
}
 
              //La fonction pour feare sortir une sГ©rie dans un fichier externe 
 
          void outserief (float z[k], fstream & f1)
           {
               short i; 
                    f1<<setiosflags(ios::showpoint);
                      for(i=0; i<k; i++)
                    f1<<setprecision(2)<<setw(5)<<z[i]<<" "; 
           }
 
                   //La fonction pour le rangemant en accroissrment une sГ©rie des nombres
 
                  void ranga()
           {
                short i, F, q;
                float R; 
                     q=k-1; 
                b1:  F=0; 
                  for (i=0; i<q; i++)
                     if (x[i]>x[i+1])      
                     {
                               R=x[i];
                     x[i]=x[i+1];
                     x[i+1]=R; 
                        F=1; 
                     }
                    if (F==1)
                       {
                             q--;
                             goto b1; 
                       }
                     }    
           }
 
                //La fonction pour le rangemant en dГ©croissement une sГ©rie des nombres 
 
               void rangd()
           {
               short i, F, q;
               float R; 
                        q=k-1; 
                 b1:    F=0; 
                    for (i=0; i<q; i++)
                      if (y[i]<y[i+1])
                        {
                                      R=y[i]; 
                           y[i]=y[i+1];
                           y[i+1]=R; 
                                F=1; 
                        }
                         if (F==1)
                         { 
                                  q--; 
                                  goto b1; 
                         }
          }
 
             //La fonction principale 
 
          void main ()
          {
               fstream f1; 
               char ch1[]="c:\\pdc\\var17\\ismat.txt";
               char ch2[]="c:\\pdc\\var17\\rez17.txt";                         
              f1.open(ch2,ios::out);
                inmatrf(); //L'entrГ©e d'une matrise de dГ©part 
               f1<<setw(25)<<""<<"La metrice de depart"<<endl;
                outmatr(f1);
                seriex(); //La crГ©ation du tadleau x[]
               f1<<endl<<setw(25)<<""<<"Le tableau x[] non-range"<<endl;
                outserief(x,f1);
                ranga(); //Le rangemment en accroissement la sГ©rie x[]
               f1<<endl<<setw(25)<<""<<"Le tableau x[] range"<<endl;
                outserief(x,f1);
                seriey(); //La crГ©ation du tableau x[]
               f1<<endl<<setw(25)<<""<<"Le tableau y[] non-range"<<endl; 
                outserief(y,f1);
                rangd(); //Le rangement en dГ©croissement la sГ©rie y[]
               f1<<endl<<setw(25)<<""<<"Le tableau y[] range"<<endl;
                outserief(y,f1);
               f1.close();
          }
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2014, 19:42     Не могу найти ошибку в коде, двумерные и одномерные массивы
Посмотрите здесь:

одномерные массивы, указатели (с++) нужно найти ошибку C++
C++ Не могу найти ошибку в коде :(
нужно найти ошибку в программе с++ на двумерные массивы C++
C++ Массивы (найти ошибку в коде)
Массивы (найти ошибку в коде) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
05.06.2014, 19:51     Не могу найти ошибку в коде, двумерные и одномерные массивы #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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
const int n=5,m=5,k=5;
float a[m][n],  x[k],  y[k];   // Les variables globales
 
// La fonction pour l’entrйe d’une matrice par le clavier
 
void inmatrc (  )
{
    short i, j;
 
    cout<<setw(20)<<" "<<"Faites entrer une matrice"<<endl;
    for (i=0; i<m; i++)
        for (j=0; j<n; j++)
            cin>>a[i][j];
}
 
// La fonction pour l’entrйe d’une matrice d’un fichier externe         
 
void inmatrf (char h[])
{
    short i, j;
    fstream f;
 
    f.open(h,ios::in);
    for (i=0; i<m; i++)
        for (j=0; j<n; j++)
            f>>a[i][j];
    f.close();
}
 
// La fonction pour feare sortir une matrice sur l’йcran 
 
void outmatr (  )
{
    short i, j;
    cout<<setiosflags(ios::showpoint);
    for (i=0; i<m; i++)
    {
        cout<<setw(15)<<" ";
        for (j=0; j<n; j++)
            cout<<setprecision(2)<<setw(6)<<a[i][j]<<" ";
        cout<<endl;
    }
}
 
// La fonction pour feare sortir une matrice dans un fichier externe
 
void outmatrf (fstream & f1)
{
    short i, j;
    f1<<setiosflags(ios::showpoint);
    for (i=0; i<m; i++) 
    {
        f1<<setw(15)<<" ";          
        for (j=0; j<n; j++)
            f1<<setprecision(2)<<setw(7)<<a[i][j]<<" ";
        f1<<endl;
    }  
}
 
// La fonction pour la crйation de la sйrie des nombres x[] des elements des                               
//lignes d’une matrice //         
 
void seriex()
 
{
    short i, j, s=0 ;
 
    for (i=0; i<m; i++)
        for (j=0; j<n; j++)
        { 
            x[s]=a[i][j]; 
            s++;
        }
}
 
// La foncion pour la crйation de la sйrie des nombres y[] des йlйments   
//des colonnes d’une matrice
 
void seriey() 
 
{
    short i, j, s=0;
 
    for (j=0; j<n; j++) 
        for (i=0; i<m; i++)
        {
            y[s]=a[i][j]; 
            s++;
        }
}
 
// La fonction pour feare sortir une sйrie des nomdres sur l’йcran
 
void outserie (float z[k])
 
{
    short i; 
    cout<<setiosflags(ios::showpoint); 
    for(i=0; i<k; i++)
        cout<<setprecision(2)<<setw(6)<<z[i]<<" "; 
}
 
//La fonction pour feare sortir une sйrie dans un fichier externe 
 
void outserief (float z[k], fstream & f1)
{
    short i; 
    f1<<setiosflags(ios::showpoint);
    for(i=0; i<k; i++)
        f1<<setprecision(2)<<setw(5)<<z[i]<<" "; 
}
 
//La fonction pour le rangemant en accroissrment une sйrie des nombres
void ranga()
{
    short i, F, q;
    float R; 
    q=k-1; 
b1:  F=0; 
    for (i=0; i<q; i++)
        if (x[i]>x[i+1])      
        {
            R=x[i];
            x[i]=x[i+1];
            x[i+1]=R; 
            F=1; 
        }
        if (F==1)
        {
            q--;
            goto b1; 
        }
}    
//La fonction pour le rangemant en dйcroissement une sйrie des nombres 
void rangd()
{
    short i, F, q;
    float R; 
    q=k-1; 
b1:    F=0; 
    for (i=0; i<q; i++)
        if (y[i]<y[i+1])
        {
            R=y[i]; 
            y[i]=y[i+1];
            y[i+1]=R; 
            F=1; 
        }
        if (F==1)
        { 
            q--; 
            goto b1; 
        }
}
 
 //La fonction principale 
void main ()
{
    fstream f1; 
    char ch1[]="c:\\pdc\\var17\\ismat.txt";
    char ch2[]="c:\\pdc\\var17\\rez17.txt";                         
    f1.open(ch2,ios::out);
    inmatrf(ch1); //L'entrйe d'une matrise de dйpart 
    f1<<setw(25)<<""<<"La metrice de depart"<<endl;
    outmatr();
    seriex(); //La crйation du tadleau x[]
    f1<<endl<<setw(25)<<""<<"Le tableau x[] non-range"<<endl;
    outserief(x,f1);
    ranga(); //Le rangemment en accroissement la sйrie x[]
    f1<<endl<<setw(25)<<""<<"Le tableau x[] range"<<endl;
    outserief(x,f1);
    seriey(); //La crйation du tableau x[]
    f1<<endl<<setw(25)<<""<<"Le tableau y[] non-range"<<endl; 
    outserief(y,f1);
    rangd(); //Le rangement en dйcroissement la sйrie y[]
    f1<<endl<<setw(25)<<""<<"Le tableau y[] range"<<endl;
    outserief(y,f1);
    f1.close();
}
Baulgar
0 / 0 / 0
Регистрация: 05.06.2014
Сообщений: 4
05.06.2014, 20:22  [ТС]     Не могу найти ошибку в коде, двумерные и одномерные массивы #3
Прошу извинить за настойчивость. Преподаватель проверял блок-схему и программу не нашел ошибок.По заданию надо выполнить эти условия:

1. образовать ряд чисел X из элементов строк и ряд чисел Y из элементов столбцов заданной матрицы A(M ×N), M = 10, N = 5;
2.сортировать ряд X по возрастанию, а ряд Y по убыванию;
3. построить диаграмму чисел несортированного ряда X в среде MS Excel.
Тип и значения элементов исходной матрицы A(M×N) принять на свое усмотрение.

При разработке программы следует предусмотреть функции:
– ввода матрицы из внешнего файла,
– ввода матрицы с клавиатуры,
– вывода матрицы во внешний файл,
– вывода матрицы на экран,
– вывода ряда чисел во внешний файл,
– вывода ряда чисел на экран,
– образования ряда по пункту 1 (ряд X),
– образования ряда по пункту 1 (ряд Y),
– сортировки ряда чисел по возрастанию,
– сортировки ряда чисел по убыванию.

В качестве результата вычислений представить:
– исходную матрицу А,
– созданный ряд чисел X,
– сортированный ряд чисел X,
– созданный ряд чисел Y,
– сортированный ряд чисел Y,

Видимо я ничему не научился.Или чего-то не понимаю.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
05.06.2014, 21:26     Не могу найти ошибку в коде, двумерные и одномерные массивы #4
Ошибки были синтаксические, а не логические.
Без компилятора их увидеть трудно.
Baulgar
0 / 0 / 0
Регистрация: 05.06.2014
Сообщений: 4
05.06.2014, 23:38  [ТС]     Не могу найти ошибку в коде, двумерные и одномерные массивы #5
Понятно.Осталась тогда только 1 проблемка.На экран выводится только созданная матрица.Использую Microsoft Visual C++ 2008 Express Edition может надо сменить компилятор?

Добавлено через 1 час 54 минуты
Уже разобрался.Благодарю за уделённое время.
Yandex
Объявления
05.06.2014, 23:38     Не могу найти ошибку в коде, двумерные и одномерные массивы
Ответ Создать тему
Опции темы

Текущее время: 21:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru