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

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

Войти
Регистрация
Восстановить пароль
 
Destus_
0 / 0 / 2
Регистрация: 06.08.2015
Сообщений: 7
#1

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

01.07.2016, 11:33. Просмотров 147. Ответов 3
Метки нет (Все метки)

Всем здравствуйте.
Было задание: Разработать программу для обработки матриц. Программа должна выполнять следующие действия: суммы, вычитания, умножения двух матриц. Решал через 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;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2016, 11:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа обработки матриц (C++):

Программа для обработки матриц - C++
Составить на одном из алгоритмических языков программу, запускается и выдает на экран меню из четырех пунктов (генерация, обработка,...

Умножение треугольных матриц«Методы обработки разреженных матриц» - C++
Нужно перемножить треугольные матрицы в обычном виде и в свёрнутом. С обычным проблем нет. Доступ к элементам свёрнутой матрицы...

Функции для обработки матриц - C++
// Подключаем библиотеки // #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;cmath&quot; using namespace std; // Двумерный...

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

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

Программа обработки массива - C++
с помощью указателей. Ввести с клавиатуры одномерный массив из 5 чисел , подсчитать сумму элементов массива.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
TimeTwo
68 / 68 / 31
Регистрация: 29.11.2009
Сообщений: 321
01.07.2016, 11:46 #2
ооп - это с классами, грубо говоря задание звучало бы так "опишите класс матрица и опишите методы класса ... "
0
Destus_
0 / 0 / 2
Регистрация: 06.08.2015
Сообщений: 7
01.07.2016, 15:14  [ТС] #3
И много переписывать придется?
0
TimeTwo
68 / 68 / 31
Регистрация: 29.11.2009
Сообщений: 321
01.07.2016, 16:12 #4
посмотрите примеры, если вы хорошо знаете классы и все что с ними связано (что то вроде перегрузки операторов для умножения, сложения матриц и тд) то это даже с нуля просто
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2016, 16:12
Привет! Вот еще темы с ответами:

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

Программа обработки структур - C++
Найдите пожалуйста ошибку. На 33 строке выдаёт error: too few arguments to function 'complex mul (complex, complex)' #include...

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

Программа обработки массива символов - C++
Составить программу обработки массива символов с помощью указателей, которая вводит текст из произвольного количества строк, а затем...


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

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

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