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

Программа обработки матриц - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ввести с клавиатуры одномерный массив, состоящий из 10 элементов http://www.cyberforum.ru/cpp-beginners/thread1774009.html
Ввести с клавиатуры одномерный массив, состоящий из 10 элементов. Заменить в нем каждый нулевой элемент полусуммой последующего и предыдущего. Если первый элемент равен 0, заменить его на второй, если последний равен 0, заменить его на предыдущий. На экран вывести новый массив в одну строку
C++ Получить действительную квадратную матрицу порядка 8, элементами которой являются числа a1,., a64 Нужно заполнить матрицу "змейкой", начиная с правого верхнего угла. Код уже есть, но постоянно выскакивает ошибка, которую самостоятельно я найти не могу. По сему я обращаюсь к вам. Заранее спасибо #include "stdafx.h" #include <iostream> #include <iomanip> #include <cmath> using namespace std; void input_mas(double *a) { http://www.cyberforum.ru/cpp-beginners/thread1773988.html
Массив слов и подстрока C++
Дан массив слов и подстрока. Сформировать предложение из слов заданной длины, в которых нет перевернутой заданной подстроки, но есть сама заданная подстрока. Перед включением в предложение удалить из слов первое вхождение заданной подстроки. выполнить, используя функции библиотеки <string.h>. Посимвольное обращение к элементам строки допустимо только для проверки на ‘\0’ и для установки...
C++ Задача по строкам
Дано предложение. Удалить из него слова, состоящие не менее чем из четырех букв, хотя бы одна из которых латинская буква ‘w’ реализовать, не используя функции библиотеки <string.h> и <mem.h>, но так, чтоб слова были чувствительны к регистру
C++ Сортировка матрицы http://www.cyberforum.ru/cpp-beginners/thread1773965.html
Здравствуйте, я уже голову сломал, но как сделать перестановку строк по убыванию значений максимальных элементов строк. Т.е. дана матрица 1 1 1 1 2 2 2 2 4 4 4 4 3 3 3 3 Надо получить 4 4 4 4 <- максимальное знач 4 3 3 3 3 <- максимальное знач 3 2 2 2 2 <- максимальное знач 2
C++ Переполнение массива, подскажите в чем ошибка и как ее исправить #include <assert.h> #include <assert.h> #include <string.h> #include <stdint.h> #include <limits.h> int get_bit(const void *in, size_t n) { return (((const uint8_t*)in) & (1 << (n % CHAR_BIT))) != 0; } подробнее

Показать сообщение отдельно
Destus_
0 / 0 / 2
Регистрация: 06.08.2015
Сообщений: 7
01.07.2016, 11:33     Программа обработки матриц
Всем здравствуйте.
Было задание: Разработать программу для обработки матриц. Программа должна выполнять следующие действия: суммы, вычитания, умножения двух матриц. Решал через DevCPP, код выложил.

Следом были добавлены условия:
При решении задачи использовать динамические массивы и объектно-ориентированный подход.

С динамическими массивами понятно, но не пойму до конца условие про ООП. Помогите, пожалуйста разобраться, что надо исправить, чтобы решение соответствовало условиям (если надо исправлять).

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
#include <math.h> 
#include <windows.h>
#include <iostream> 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
using namespace std;
 
char FileName[256];
char Stroka[100];
char RusText[100];
char *slovo;
 
double **Matrix,**Matrix2,**Matrix3,**Matrix4,**Matrix5;
int i,j,N=0,vop;
 
// сложение двух матриц
double slozhenie()
{
    
    Matrix3=new double*[N];
    for (int i=0; i<N; i++)
    {
        Matrix3[i]=new double[N];
        for (int j=0; j<N; j++)
        {
            Matrix3[i][j] = Matrix[i][j] + Matrix2[i][j];
            cout<<Matrix3[i][j]<<"\t";
        }
        cout<<endl;
    }
 
return 0;
}
 
// разность двух матриц
double vichetanie()
{
    
    Matrix3=new double*[N];
    for (int i=0; i<N; i++)
    {
        Matrix3[i]=new double[N];
        for (int j=0; j<N; j++)
        {
            Matrix3[i][j] = Matrix[i][j] - Matrix2[i][j];
            cout<<Matrix3[i][j]<<"\t";
        }
        cout<<endl;
    }
 
return 0;
}
 
// умножение двух матриц
double umnozhenie()
{
 
    Matrix5=new double*[N];      
    for (int i=0; i<N; i++)
    {                    
        Matrix5[i]=new double[N];
        for (int j=0; j<N; j++)
        {
            Matrix5[i][j]=0;
            for(int k=0;k<N;k++)
                Matrix5[i][j] +=Matrix[i][k]*Matrix4[k][j];
        }
    }
   
    
return 0;
}
 
 
main()
{
  do
{
    char RusMatrVvd[20],RusMatrStr[15],RusMatrStlb[15];
    CharToOem("Введите элемент ",RusMatrVvd);
    CharToOem("-ой стоки ",RusMatrStr);
    CharToOem("-ого столбца: ",RusMatrStlb);
    CharToOem("Введите размерность матрицы : ",RusText);         
    cout<<RusText;
    cin>>N;
    Matrix=new double*[N];      
    for(i=0;i<N;i++)        
    {   
        Matrix[i]=new double[N];
        for(j=0;j<N;j++)
        {
            cout<<RusMatrVvd<<i+1<<RusMatrStr<<j+1<<RusMatrStlb;
            cin>>Matrix[i][j];
        }
    }
    
    CharToOem("Исходная матрица:",RusText);
    cout<<endl<<RusText<<endl;
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            cout<<Matrix[i][j]<<"\t";
        }
        cout<<endl;
    }
    
 
    CharToOem("Что делать? ",RusText);          
    cout<<endl<<RusText<<endl;
 
    CharToOem("1 - Разность двух матриц ",RusText);
    cout<<endl<<RusText<<endl;
    CharToOem("2 - Сложение двух матриц ",RusText);
    cout<<endl<<RusText<<endl;
    CharToOem("3 - Умножение одной матрицы на другую ",RusText);
 
    cout<<endl<<RusText<<endl<<endl;
    int vop1;
    cin>>vop1;
    switch(vop1)
    {
    case 1:
     
        {
        CharToOem("Введите элементы второй матрицы : ",RusText);    
        cout<<RusText<<endl;
        Matrix2=new double*[N];     
        for(i=0;i<N;i++)        
        {   
           Matrix2[i]=new double[N];
           for(j=0;j<N;j++)
           {
               cout<<RusMatrVvd<<i+1<<RusMatrStr<<j+1<<RusMatrStlb;
               cin>>Matrix2[i][j];
           }
        }
    
        CharToOem("Вторая матрица:",RusText);
        cout<<endl<<RusText<<endl;
        for(i=0;i<N;i++)
        {
           for(j=0;j<N;j++)
           {
               cout<<Matrix2[i][j]<<"\t";
           }
        cout<<endl;
        }
        CharToOem("Сумма:",RusText);
        cout<<endl<<RusText<<endl;
        vichetanie();
        break;
        }
    case 2:
        {
        CharToOem("Введите элементы второй матрицы : ",RusText);    
        cout<<RusText<<endl;
        Matrix2=new double*[N];     
        for(i=0;i<N;i++)        
        {   
           Matrix2[i]=new double[N];
           for(j=0;j<N;j++)
           {
               cout<<RusMatrVvd<<i+1<<RusMatrStr<<j+1<<RusMatrStlb;
               cin>>Matrix2[i][j];
           }
        }
    
        CharToOem("Вторая матрица:",RusText);
        cout<<endl<<RusText<<endl;
        for(i=0;i<N;i++)
        {
           for(j=0;j<N;j++)
           {
               cout<<Matrix2[i][j]<<"\t";
           }
        cout<<endl;
        }
        CharToOem("Сумма:",RusText);
        cout<<endl<<RusText<<endl;
        slozhenie();
        break;
        }
    case 3:
        {
        CharToOem("Введите элементы второй матрицы : ",RusText);    
        cout<<RusText<<endl;
        Matrix4=new double*[N];     
        for(i=0;i<N;i++)        
        {   
           Matrix4[i]=new double[N];
           for(j=0;j<N;j++)
           {
               cout<<RusMatrVvd<<i+1<<RusMatrStr<<j+1<<RusMatrStlb;
               cin>>Matrix4[i][j];
           }
        }
    
        CharToOem("Вторая матрица:",RusText);
        cout<<endl<<RusText<<endl;
        for(i=0;i<N;i++)
        {
           for(j=0;j<N;j++)
           {
               cout<<Matrix4[i][j]<<"\t";
           }
        cout<<endl;
        }
        CharToOem("Произведение:",RusText);
        cout<<endl<<RusText<<endl;
        umnozhenie();
        for(i=0;i<N;i++)
        {
            for(j=0;j<N;j++)
            {
                cout<<Matrix5[i][j]<<"\t";
            }
            cout<<endl;
        }
        break;
        }
   
    }
 
 
 
CharToOem("Завершить работу?",RusText);
cout<<endl<<RusText<<endl;
CharToOem("1 - Да",RusText);
cout<<endl<<RusText<<endl;
CharToOem("2 - Нет ",RusText);
cout<<endl<<RusText<<endl;
cin>>vop;
}
while(vop!=1);
 
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru