Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/100: Рейтинг темы: голосов - 100, средняя оценка - 4.57
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
1

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

01.06.2014, 12:12. Показов 18233. Ответов 54
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте,помогите пожалуйста по такой проблемке-в С++ надо создать матрицу и действия над ней..буду очень благодарен кто поможет.
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2014, 12:12
Ответы с готовыми решениями:

Структуры: арифметические операции (сложение, вычитание, умножение, деление) над комплексными числами
Написать программу, реализующую арифметические операции (сложение, вычитание, умножение, деление),...

Организовать ввод двух вещественных чисел и операции над ними: сложение, вычитание, умножение и деление
Парни всем привет! Начинаю новую тему по решению задач Задача звучит так: Написать программу,...

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

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

54
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
11.06.2014, 12:19  [ТС] 41
Author24 — интернет-сервис помощи студентам
да это ваш код но начало я взял у 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;
}
вот так я маленько улучшил-надо все таки учиться,но где результат стоит нужен пробел а то числа в той же строке где и надпись+ как включить здесь умножение второй матрицы на число,перемножение матриц,транспонирование матриц
Заранее спасибо
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
11.06.2014, 12:28 42
Молодец... Только про теги форматирования не забывай.
0
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
11.06.2014, 12:32  [ТС] 43
что за теги форматирования??
0
volvo
11.06.2014, 13:00
  #44

Не по теме:

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

0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
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;
        }
 
}
1
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
12.06.2014, 12:33  [ТС] 46
что то не понимаю для вывода что вставлять надо?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
12.06.2014, 12:37 47
Печатать результат умножения матриц точно так же, как и сумму матриц. В чем разница?
1
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
12.06.2014, 12:48  [ТС] 48
ну а результаты как сделать со слова и раздельно а не как у нас слитно получаются..
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
12.06.2014, 12:58 49
Вставляй

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

Добавлено через 18 минут
осталось разобраться куда и как что вставить умножение матриц,умножение второй матрицы на число и транспонирование матриц
0
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
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;
}
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
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];
        }
}
1
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
16.06.2014, 21:21  [ТС] 53
Catstail не получается-вставил а она не выводит все равно..что не так то???
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
16.06.2014, 22:09 54
А вызвать не забыл?
0
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
17.06.2014, 18:20  [ТС] 55
Catstail у меня никак не выходит то ничего не меняется то ошибок целую кучу выдает..
0
17.06.2014, 18:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2014, 18:20
Помогаю со студенческими работами здесь

Нужны советы как реализовать сложение, вычитание, умножение полиномов/многочленов и деление на число
Всем здравствуйте! надеюсь написать с вашей помощью программку для сложения, вычитания и умножения...

Сложение, вычитание, умножение
Доброго времени суток! Помогите с задачей: Написать функцию, которая складывает, вычитает или...

Нестандартное сложение, вычитание, умножение и деление
Что-то на форуме скучно, давайте устроим небольшой интерактивчик, придумываем самые нестандартные...

Сложение и вычитание, умножение и деление, сравнение сумм
Уважаемые форумчане! помогите, пожалуйста, нужно написать программу для работы с устаревшей...


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

Или воспользуйтесь поиском по форуму:
55
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru