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

Ошибка кода калькулятора матриц - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ рекурсия в с++ ( ?: = if() else) http://www.cyberforum.ru/cpp-beginners/thread718192.html
Подскажите, пожалуйста, как сделать с помощью рекурсивной функции? int sum (int *arr, size_t size) { return size ? *arr + sum (arr + 1, size - 1) : 0; }
C++ Как подсчитать частоту вхождения слов в текст.файле? Нужно создать программу, которая подсчитает частоту вхождения слов в текстовом файле. Помогите пожалуйста! :help: http://www.cyberforum.ru/cpp-beginners/thread718180.html
C++ Работа с матрицами. Структуры и массивы структур
Помогите пожалуйста...Заранее благодарю... 1.Создать квадратную матрицу целых чисел размером 9х9. В индивидуальных заданиях указано, какую отделку матрицы нужно выполнить. (если по условию задачи матрицу следует заполнить случайными числами, рекомендуем выбирать эти числа из диапазона 0 - 99. Если по условию задачи в матрицу следует записать ЛП - линейную последовательность чисел,...
C++ Рассчитать значения у для значений х, равных 4, 5, ..., 28, если у задается следующей формулой: у = 2t2 + 5,5t – 2, t = х + 2.
помогите сделать цыклы пожалуйста 1)Рассчитать значения у для значений х, равных 4, 5, ..., 28, если у задается следующей формулой: у = 2t2 + 5,5t – 2, t = х + 2.
C++ 16-ричный дамп бинарного файла? http://www.cyberforum.ru/cpp-beginners/thread718172.html
Как создать программу, виводящую 16-ричный дамп бинарного файла (вместо каждого байта входного файла виводится значение в 16-ричной системе)??? Для работы с файлами нужно использовать функции cstdio.
C++ динамическое выделение (матрицы, переписать код) ребят помогите пожалуйста. нужно переделать код под динамическое выделение памяти под массив но при попытке сделать это вспомогательные функции начинают ругаться( уже всю голову сломал. /*2. Дана целочисленная квадратная матрица. Определить: • сумму элементов в тех столбцах, которые не содержат отрицательных элементов; • минимум среди сумм элементов диагоналей, параллельных побочной диагонали... подробнее

Показать сообщение отдельно
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
03.12.2012, 22:59     Ошибка кода калькулятора матриц
ужоснах. наверно половина ошибок не было бы, если бы вы номрально форматировали код.
вот это например:
C++
1
2
3
4
5
6
for (int i=0; i<2; i++)
{
for (int j=0; j<2; j++)
cout << "\nВаша матриця 2х2:";
cout << mas[i][j] << "\t";
}
Читать сложно, понять что делается - еще сложнее. Ошибок много. Бробираясь через них наткнулся на наверно последнюю, которую мне в лом искать из-за кривого форматирования. это несоответствие открывающих и закрывающих скобок '{' '}'
Вот мои потуги, попробуйте сравнить свою и эту версию специальной тулзой для сравнивания кода, может поможет. А вообще писать нормально надо, а не так, как это у вас.

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
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
//---------------------------------------------------------------------------
#include <iostream>
#include <conio.h>
#include<stdio.h>
#include <iomanip>
#include <windows.h>
#include <math.h>
#include<stdlib.h>
#define NN 6
//#pragma hdrstop
//---------------------------------------------------------------------------
//#pragma argsused
using namespace std;
void main(void)
{
system("TITLE Matrix");
double mas[2][2],det,mas1[3][3],mas2[3][3],mas3[2][2],mas4[2][2],c,mas5[3][3],mas6[3][3];
//int i,j,x,tmp;
char vub;
for (;;) {
 do {
cout <<"\nМiні-функцiональний калькулятор матриць. Для виходу з програми натиснiть q.";
cout <<"\n1 Порахувати матрицю 2х2";
cout <<"\n2 Порахувати матрицю 3х3";
cout <<"\n3 Транспонування квадратної матриці по головній і побічній діагоналях";
cout <<"\n4 Мінори квадратної матриці по заданим рядкам і стовпчикам";
cout <<"\n5 Множення числа на матрицю 2х2";
cout <<"\n6 Множення числа на матрицю 3х3";
cout <<"\n7 Додавання матриць 2х2";
cout <<"\n8 Додавання матриць 3х3";
cout <<"\n9 Про програму";
cout <<"\n";
cout <<"\nЗробіть ваш вибір:";
cin >> vub;
}
while ( vub < '1' || vub > '9' && vub != 'q');
if (vub == 'q') break;
    switch (vub)
    {
       case '1':
            mas[0][0]=0;
            det=0;
            cout<<"\nПерший елемент матриці--->";
            cin>>mas[0][0];
            cout<<"Другий елемент матриці--->";
            cin>>mas[0][1];
            cout<<"Третій елемент матриці--->";
            cin>>mas[1][0];
            cout<<"Четвертий елемент матриці--->";
            cin>>mas[1][1];
            for (int i=0; i<2; i++)
            {
                for (int j=0; j<2; j++)
                {
                cout << "\nВаша матриця 2х2:";
                cout << mas[i][j] << "\t";
                }
            }
            cout << "\n";
            det=(((mas[0][0])*(mas[1][1]))-((mas[1][0])*(mas[0][1])));
            cout<<"det="<<"("<<mas[0][0]<<"*"<<mas[1][1]<<")"<<"-"<<"("<<mas[1][0]<<"*"<<mas[0][1]<<")"<<"="<<det;
       break;
       case '2':
               cout<<"Перший елемент матриці--->";
               cin>>mas1[0][0];
               cout<<"Другий елемент матриці--->";
               cin>>mas1[0][1];
               cout<<"Третій елемент матриці--->";
               cin>>mas1[0][2];
               cout<<"Четвертий елемент матриці--->";
               cin>>mas1[1][0];
               cout<<"П'ятий елемент матриці--->";
               cin>>mas1[1][1];
               cout<<"Шостий елемент матриці--->";
               cin>>mas1[1][2];
               cout<<"Сьомий елемент матриці--->";
               cin>>mas1[2][0];
               cout<<"Восьмий елемент матриці--->";
               cin>>mas1[2][1];
               cout<<"Дев'ятий елемент матриці--->";
               cin>>mas1[2][2];
               for (int i=0; i<3; i++)
               {
                   for (int j=0; j<3; j++)
                   {
                   cout << "\nВаша матриця 3х3:";
                   cout << mas1[i][j] << "\t";
                   }
               }
               cout << "\n";
               det=((mas1[0][0])*(mas1[1][1])*(mas1[2][2]))+((mas1[2][0])*(mas1[0][1])*(mas1[1][2]))+((mas1[1][0])*(mas1[2][1])*(mas1[0][2]))-((mas1[2][0])*(mas1[1][1])*(mas1[0][2]))-((mas1[0][0])*(mas1[2][1])*(mas1[1][2]))-((mas1[1][0])*(mas1[0][1])*(mas1[2][2]));
               cout<<"det="<<"("<<mas1[0][0]<<"*"<<mas1[1][1]<<"*"<<mas1[2][2]<<")"<<"+"<<"("<<mas1[2][0]<<"*"<<mas1[0][1]<<"*"<<mas1[1][2]<<")"<<"+"<<"("<<mas1[1][0]<<"*"<<mas1[2][1]<<"*"<<mas1[0][2]<<")"<<"-"<<"("<<mas1[2][0]<<"*"<<mas1[1][1]<<"*"<<mas1[0][2]<<")"<<"-"<<"("<<mas1[0][0]<<"*"<<mas1[2][1]<<"*"<<mas1[1][2]<<")"<<"-"<<"("<<mas1[1][0]<<"*"<<mas1[0][1]<<"*"<<mas1[2][2]<<")"<<"="<<det;
       break;
       case '3':
               {
               int **mas, n, i,j;
               SetConsoleCP(1251);
               SetConsoleOutputCP(1251);
               cout<<"Введіть кількість рядків і стовпчиків: "<< endl;
               cin>>n;
               mas=new int*[n];
               for(i=0; i<n; i++)
               mas[i]=new int[n];
               cout<<"Введіть елементи матриці: "<< endl;
               for(i=0; i<n; i++)
               for(j=0; j<n; j++)
               {
               cout<<"["<<i<<"]["<<j<<"]= ";
               cin>>mas[i][j];
               }
               cout<<"Ваша матриця"<<endl;
               for(i=0; i<n; i++)
               {
               for(j=0; j<n; j++)
               cout<<mas[i][j]<<" ";
               cout<<endl;
               }
               cout<<"Транспонована матриця по головній діагоналі:"<<endl;
               for(i=0; i<n; i++)
               {
               for(j=0; j<n; j++)
               cout<<mas[j][i]<<" ";
               cout<<endl;
               }
               cout<<"Транспонована матриця по побічній діагоналі:"<<endl;
               for(i=0; i<n; i++)
               {
               for(j=0; j<n; j++)
               cout<<mas[n-1-j][n-1-i]<<" ";
               cout<<endl;
               }
               cout<<endl;
               getch();
               }
       break;
       case '4':
           {
               float a[NN][NN],kst;
               int i,j,n,im,jm,p,k=0,t;
               char yn;
// <----Введення розміру квадратної матриці---->
               while(k==0)
               {
               printf("\nВведіть розмір матриці (від 2 до %d): N=",NN);
               n=getche()-48;
               if ((n<2) || (n>NN)) k=0;
               else k=1;
               }
// <----Ввід матриці a[NN][NN]---->
               k=0;
               while(k==0)
               {
               printf("\n\nЗадати матрицю випадково? y/n: ");
               yn=getche();
               if ((yn=='y') || (yn=='n')) k=1;
               else k=0;
               }
               switch(yn)
               {
               case 'y': for(i=0;i<n;i++) for(j=0;j<n;j++) a[i][j]=rand()%100;break;
               default:
               {
               printf("\nВведіть матрицю %dx%d\n",n,n);
               for(i=0;i<n;i++)
               for(j=0;j<n;j++)
               scanf("%f",&a[i][j]);
               }
               break;
               }
// <----Вивід введеної матриці---->
               printf("\n");
              for(i=0;i<n;i++)
              {
              for(j=0;j<n;j++) printf("%6.2f\t",a[i][j]);
              printf("\n\n");
              }
// <----Вводимо мінор---->
              printf("За якими номерами рядків і стовпчиків будемо шукати мінор? i=");
              im=getche()-49;
              printf(" j=");
              jm=getche()-49;
// <----Рахуємо матрицю мінора---->
              for (i=0; i<n; i++)
              if(i==im) for(p=i; p<n; p++) for(j=0; j<n; j++) a[p][j]=a[p+1][j];
              for (j=0; j<n; j++)
              if(j==jm) for(p=j; p<n; p++) for(i=0; i<n; i++) a[i][p]=a[i][p+1];
              n-=1;
// <----Виводимо матрицю---->
              printf("\n");
              for(i=0;i<n;i++)
              {
              for(j=0;j<n;j++) printf("%6.2f\t",a[i][j]);
              printf("\n\n");
              }
// <----Рахуємо мінор---->
              p=0;
              for (i=0; i<n-1; i++)
              {
              t=1;
              while(a[i][i]==0)
              {
              for(j=0; j<n; j++)
              {
              a[i][j]=kst;
              a[i][j]=a[i+t][j];
              a[i+t][j]=kst;
              }
              p++;
              t++;
              }
              for (k=i+1; k<n; k++)
              {
              kst=a[k][i]/a[i][i];
              for(j=0; j<n; j++)
              a[k][j]-=a[i][j]*kst;
              }
              }
              kst=pow(-1.f, float(p));
              for(i=0; i<n; i++)
              kst*=a[i][i];
              printf("Мінор по А[%d][%d] дорівнює: %14.3f",im+1,jm+1,kst);
              getch();
       break;
           }
 
       case '5':
               cout<<"\nПерший елемент матриці--->";
               cin>>mas3[0][0];
               cout<<"Другий елемент матриці--->";
               cin>>mas3[0][1];
               cout<<"Третій елемент матриці--->";
               cin>>mas3[1][0];
               cout<<"Четвертий елемент матриці--->";
               cin>>mas3[1][1];
               for (int i=0; i<2; i++)
               {
                   for (int j=0; j<2; j++)
                   {
                       cout << "\nВаша матриця 2х2:";
                       cout << mas3[i][j] << "\t";
                   }
               }
               {
               cout << "\nВедіть число на яке потрібно помножити матрицю:";
               cin >>c;
               mas4[0][0]=((mas3[0][0])*c);
               mas4[0][1]=((mas3[0][1])*c);
               mas4[1][0]=((mas3[1][0])*c);
               mas4[1][1]=((mas3[1][1])*c);
               for (int i=0; i<2; i++)
               {
                   for (int j=0; j<2; j++)
                   {
                       cout << "\nВаша домножена матриця:";
                       cout << mas4[i][j] << "\t";
                   }
               }
               }
            break;
       case '6':
           {
               cout<<"Перший елемент матриці--->";
               cin>>mas5[0][0];
               cout<<"Другий елемент матриці--->";
               cin>>mas5[0][1];
               cout<<"Третій елемент матриці--->";
               cin>>mas5[0][2];
               cout<<"Четвертий елемент матриці--->";
               cin>>mas5[1][0];
               cout<<"П'ятий елемент матриці--->";
               cin>>mas5[1][1];
               cout<<"Шостий елемент матриці--->";
               cin>>mas5[1][2];
               cout<<"Сьомий елемент матриці--->";
               cin>>mas5[2][0];
               cout<<"Восьмий елемент матриці--->";
               cin>>mas5[2][1];
               cout<<"Дев'ятий елемент матриці--->";
               cin>>mas5[2][2];
               for (int i=0; i<3; i++)
               {
                   for (int j=0; j<3; j++)
                   {
                       cout << "\nВаша матриця 3х3:";
                       cout << mas5[i][j] << "\t";
                   }
               }
               {
               cout << "\nВедіть число на яке потрібно помножити матрицю:";
               int с = 0;
               cin >>c;
               mas6[0][0]=((mas5[0][0])*c);
               mas6[0][1]=((mas5[0][1])*c);
               mas6[0][2]=((mas5[0][2])*c);
               mas6[1][0]=((mas5[1][0])*c);
               mas6[1][1]=((mas5[1][1])*c);
               mas6[1][2]=((mas5[1][2])*c);
               mas6[2][0]=((mas5[2][0])*c);
               mas6[2][1]=((mas5[2][1])*c);
               mas6[2][2]=((mas5[2][2])*c);
               for (int i=0; i<3; i++)
               {
                   for (int j=0; j<3; j++)
                   {
                    cout << "\nВаша домножена матриця:";
                    cout << mas6[i][j] << "\t";
                   }
               }
            break;
               }
       case '7':
            break;
       case '8':
            break;
       case '9':
            break;
       default:
            cout <<"\nДякуємо за*використання нашої програми";
}
        }
        }
 
Текущее время: 11:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru