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

Операции над матрицами-сложение, вычитание, умножение на число - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.70
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
01.06.2014, 12:12     Операции над матрицами-сложение, вычитание, умножение на число #1
Здравствуйте,помогите пожалуйста по такой проблемке-в С++ надо создать матрицу и действия над ней..буду очень благодарен кто поможет.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2014, 12:12     Операции над матрицами-сложение, вычитание, умножение на число
Посмотрите здесь:

С клавиатуры вводится две матрицы вычислить: сложение, вычитание, умножение, транспонирование. C++
C++ Сложение, вычитание, умножение
операции над матрицами C++
Организовать ввод двух вещественных чисел и операции над ними: сложение, вычитание, умножение и деление C++
C++ Нужны советы как реализовать сложение, вычитание, умножение полиномов/многочленов и деление на число
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
11.06.2014, 12:19  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #41
да это ваш код но начало я взял у Sh@dow777

Добавлено через 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
#include <iostream>
#include <string>
 
using namespace std;
 
    void sum_matrix(int *a[], int *b[], int *c[], int n, int m)//Сложение матриц
{
 
    int i,j;
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            c[i][j]=a[i][j]+b[i][j];
}
void sub_matrix(int *a[], int *b[], int *c[], int n, int m)//Вычитание матриц
{
    int i,j;
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            c[i][j]=a[i][j]-b[i][j];
}
 
void mult_matrix(int *a[], int *e[],int q, int n, int m)//Умножение первой матрицы на число
{
    int i,j; 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            e[i][j] = q * a[i][j];
    
}
int main()
{
    int i,j,n,m,q;
    setlocale(LC_ALL,"rus");//Добавление русского языка
    string name;
    cout<<"Введите пожалуйста число строк первой и второй  матрицы: ";
    cout << "n=";
    cin >> n;
    
    cout<<"Введите пожалуйста число столбцов первой и второй  матрицы: ";
    cout << "m=";
    cin >> m;
 
    cout<<"Введите пожалуйста число на которое умножится первая матрица: ";
    cout << "q=";
    cin >> q;
 
    int **a = new int *[n];
    cout<<"Введите пожалуйста числа первой матрицы: ";
    for(i = 0; i < n;i++)
        a[i] = new int[m];
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
        {
            cout << "a[" << i <<"," << j << "]=";
            cin >> a[i][j];
        }
    
    int **b = new int *[n];
    cout<<"Введите пожалуйста числа второй матрицы: ";
    for(i = 0;i < n;i++)
       b[i] = new int[m];
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
        {
            cout << "b[" << i <<"," << j << "]=";
            cin >> b[i][j];
        }
        
 
    int **c = new int *[n];
    cout<<"Результат :";
       for(i = 0;i < n;i++)
       c[i] = new int[m];
 
 
 
    int **d = new int *[n];
    for(i = 0;i < n;i++)
       d[i] = new int[m];
 
 
 
    int **e = new int *[n];
    for(i = 0;i < n;i++)
       e[i] = new int[m];
 
    sum_matrix (a, b, c, n, m);
    sub_matrix (a, b, d, n, m);
    mult_matrix(a, e, q, n, m);
 
    for(i = 0;i < n;i++)
    {
       for(j = 0;j < m;j++)
          cout << c[i][j] << " ";
       cout << "\n";
    }
    for(i = 0;i < n;i++)
    {
       for(j = 0;j < m;j++)
          cout << d[i][j] << " ";
       cout << "\n";
    }
    for(i = 0;i < n;i++)
    {
       for(j = 0;j < m;j++)
          cout << e[i][j] << " ";
       cout << "\n";
    }
 
    delete[]a;
    delete[]b;
    delete[]c;
    delete[]d;
    delete[]e;
    system("pause");
 
    return 0;
}
вот так я маленько улучшил-надо все таки учиться,но где результат стоит нужен пробел а то числа в той же строке где и надпись+ как включить здесь умножение второй матрицы на число,перемножение матриц,транспонирование матриц
Заранее спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
11.06.2014, 12:28     Операции над матрицами-сложение, вычитание, умножение на число #42
Молодец... Только про теги форматирования не забывай.
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
11.06.2014, 12:32  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #43
что за теги форматирования??
volvo
11.06.2014, 13:00
  #44

Не по теме:

АЛЕКСЕЙ_92, кнопочка такая, в окне редактора сообщений. С++ на ней написано. Выделяешь текст кода, и жмешь эту кнопку. Больше информации: http://www.cyberforum.ru/about-forum/thread103521.html

Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
12.06.2014, 12:11     Операции над матрицами-сложение, вычитание, умножение на число #45
Вот умножение матриц:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// ÓìГ*îæåГ*ГЁГҐ Г¬Г*òðèöû a (n*m) Г*Г* Г¬Г*òðèöó b (m*k) 
// ðåçóëüòГ*ГІ Гў Г¬Г*òðèöå c (n*k)
 
void mmatrix(int *a[], int *b[], int *c[], int n, int m, int k)
{
    int i,j,l,s;
    for (i=0; i<n; i++)
        for (j=0; j<k; j++)
        {
            s=0;
            for (l=0; l<m; l++) s+=(a[i][l])*(b[l][j]);
            c[i][j]=s;
        }
 
}
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
12.06.2014, 12:33  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #46
что то не понимаю для вывода что вставлять надо?
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
12.06.2014, 12:37     Операции над матрицами-сложение, вычитание, умножение на число #47
Печатать результат умножения матриц точно так же, как и сумму матриц. В чем разница?
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
12.06.2014, 12:48  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #48
ну а результаты как сделать со слова и раздельно а не как у нас слитно получаются..
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
12.06.2014, 12:58     Операции над матрицами-сложение, вычитание, умножение на число #49
Вставляй

C++
1
cout << endl;
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
12.06.2014, 13:56  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #50
умножение не пашет-что то не так...почему void mmatrix когда у остальных sub_ и sum_, mult_?

Добавлено через 18 минут
осталось разобраться куда и как что вставить умножение матриц,умножение второй матрицы на число и транспонирование матриц
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
16.06.2014, 10:19  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #51
Ребят помогите пожалуйста вставить сюда перемножение матриц и умножение второй матрицы на число а то никак не получается,буду очень благодарен и признателен...
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
#include <iostream>
#include <string>
 
using namespace std;
 
    void sum_matrix(int *a[], int *b[], int *c[], int n, int m)//Сложение матриц
{
 
    int i,j;
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            c[i][j]=a[i][j]+b[i][j];
}
void sub_matrix(int *a[], int *b[], int *c[], int n, int m)//Вычитание матриц
{
    int i,j;
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            c[i][j]=a[i][j]-b[i][j];
}
void mult_matrix(int *a[], int *e[],int q, int n, int m)//Умножение первой матрицы на число
{
    int i,j; 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
            e[i][j] = q * a[i][j];
    
}
 
int main()
{
    int i,j,n,m,q;
    setlocale(LC_ALL,"rus");//Добавление русского языка
    string name;
    cout<<"Введите пожалуйста число строк первой и второй  матрицы: ";
    cout << endl;
    cout << "n=";
    cin >> n;
    
    cout<<"Введите пожалуйста число столбцов первой и второй  матрицы: ";
    cout << endl;
    cout << "m=";
    cin >> m;
 
    cout<<"Введите пожалуйста число на которое умножится первая матрица: ";
    cout << endl;
    cout << "q=";
    cin >> q;
 
    int **a = new int *[n];
    cout<<"Введите пожалуйста числа первой матрицы: ";
    cout << endl;
    for(i = 0; i < n;i++)
        a[i] = new int[m];
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
        {
            cout << "a[" << i <<"," << j << "]=";
            cin >> a[i][j];
        }
    
    int **b = new int *[n];
    cout<<"Введите пожалуйста числа второй матрицы: ";
    cout << endl;
    for(i = 0;i < n;i++)
       b[i] = new int[m];
 
    for(i = 0;i < n;i++)
        for(j = 0;j < m;j++)
        {
            cout << "b[" << i <<"," << j << "]=";
            cin >> b[i][j];
        }
        
 
    int **c = new int *[n];
    cout<<"Результаты :";
       for(i = 0;i < n;i++)
       c[i] = new int[m];
       cout << endl;
 
 
    int **d = new int *[n];
    for(i = 0;i < n;i++)
       d[i] = new int[m];
       cout << endl;
 
  int **с = new int *[n];
    for(i = 0;i < n;i++)
       с[i] = new int[m];
       
    
    
    int **e = new int *[n];
    for(i = 0;i < n;i++)
       e[i] = new int[m];
       
    
 
    sum_matrix (a, b, c, n, m);
    sub_matrix (a, b, d, n, m);
    mult_matrix(a, e, q, n, m);
 
    cout<<"Сложение матриц :";
    cout << endl;
    for(i = 0;i < n;i++)
    {
       for(j = 0;j < m;j++)
          cout << c[i][j] << " ";
       cout << "\n";
       cout << endl;
    }
    cout<<"Разность матриц :";
    cout << endl;
    for(i = 0;i < n;i++)
    {
       for(j = 0;j < m;j++)
          cout << d[i][j] << " ";
       cout << "\n";
       cout << endl;
    }
    cout<<"Умножение первой матрицы на число :";
    cout << endl;
    for(i = 0;i < n;i++)
    {
       for(j = 0;j < m;j++)
          cout << e[i][j] << " ";
       cout << "\n";
       cout << endl;
    }
 
    delete[]a;
    delete[]b;
    delete[]c;
    delete[]d;
    delete[]e;
    system("pause");
 
    return 0;
}
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
16.06.2014, 19:04     Операции над матрицами-сложение, вычитание, умножение на число #52
Вставь в нужное место:

C++
1
2
3
4
5
6
7
8
9
10
void mult_matrx_2(int *a[], int *b[], int *c[], int n, int m, int k) // умножение матриц
{
    int ii,jj,kk;
    for (ii=0; ii<n; ii++)
        for (jj=0; jj<kk; jj++)
        {
            c[ii][jj]=0;
            for (kk=0; kk<m; kk++) c[ii][jj]=c[ii][jj]+a[ii][kk]*b[kk][jj];
        }
}
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
16.06.2014, 21:21  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #53
Catstail не получается-вставил а она не выводит все равно..что не так то???
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
16.06.2014, 22:09     Операции над матрицами-сложение, вычитание, умножение на число #54
А вызвать не забыл?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2014, 18:20     Операции над матрицами-сложение, вычитание, умножение на число
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
АЛЕКСЕЙ_92
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 121
17.06.2014, 18:20  [ТС]     Операции над матрицами-сложение, вычитание, умножение на число #55
Catstail у меня никак не выходит то ничего не меняется то ошибок целую кучу выдает..
Yandex
Объявления
17.06.2014, 18:20     Операции над матрицами-сложение, вычитание, умножение на число
Ответ Создать тему
Опции темы

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