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

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

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

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

01.07.2016, 11:33. Просмотров 143. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2016, 11:33     Программа обработки матриц
Посмотрите здесь:

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

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

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

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

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

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

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

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

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

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

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

Программа обработки текстового файла - C++
Помогите написать программу на Си! Дано: Текстовый файл inString.txt содержит список (столбец) слов русского языка - имён...

Программа обработки прерывания от клавиатуры должна: - C++
1. Распознавать нажатие горячей комбинации клавиш и реагировать на него звуком 2. При первом нажатии горячей комбинации переходить в...


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

Или воспользуйтесь поиском по форуму:
TimeTwo
68 / 68 / 31
Регистрация: 29.11.2009
Сообщений: 321
01.07.2016, 16:12     Программа обработки матриц #4
посмотрите примеры, если вы хорошо знаете классы и все что с ними связано (что то вроде перегрузки операторов для умножения, сложения матриц и тд) то это даже с нуля просто
Yandex
Объявления
01.07.2016, 16:12     Программа обработки матриц
Ответ Создать тему
Опции темы

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