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

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

Войти
Регистрация
Восстановить пароль
 
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 278
#1

Составить программу, производящую умножение матрицы на матрицу и транспонирование - C++

24.05.2013, 00:22. Просмотров 824. Ответов 8
Метки нет (Все метки)

Составить программу производящую следующие операции над матрицами (умножение матрицы на матрицу) и транспонирование матрицы..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2013, 00:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Составить программу, производящую умножение матрицы на матрицу и транспонирование (C++):

Умножение, вычисление ранга, транспонирование, норма матрицы - C++
Всем привет ). Дали задание сделать лабораторную работу на с++ по теме линейные списки а как делать ума не приложу вот собственно задание ...

Класс Квадратная матрица. Методы: умножение на матрицу, умножение на константу, вывод элементов матрицы на дисплей - C++
Задание: Класс «Квадратная матрица». Методы: умножение на матрицу, умножение на константу, вывод элементов матрицы на дисплей. Нужно...

С клавиатуры вводится две матрицы вычислить: сложение, вычитание, умножение, транспонирование. - C++
Буду благодарен=(( С клавиатуры вводится две матрицы вычислить: сложение, вычитание, умножение, транспонирование. Добавлено через 2...

Умножение матрицы на матрицу, и нахождение обратной матрицы - C++
Здравствуйте! нужно написать программу, которая могла бы производить всякие операции над матрицами (двухмерными массивами) меня...

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

Умножение матрицы на матрицу - C++
Здравствуйте, помогите решить довольно интересную задачу на DevCpp Даны прямоугольные матрицы A размером m на n и B размером k на l ....

8
TheVlad
5 / 5 / 1
Регистрация: 24.10.2012
Сообщений: 102
24.05.2013, 00:29 #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
# include <iostream>
# include <iomanip>
int main()
{
    using namespace std;
    const int m=5, n=5;
    int x[m][n], y[m][n], z[m][n], s;
    cout<<"Array A:\n";
    for(int i=0;i<m;i++) {                   
        for(int j=0;j<n;j++) {
            x[i][j]=rand()%10;
            cout<<setw(3)<<x[i][j]<<" ";
        }
        cout<<endl;
    }                                         
    cout<<"Array B:\n";
    for(int i=0;i<m;i++) {                   
        for(int j=0;j<n;j++) {
            y[i][j]=rand()%10;
            cout<<setw(3)<<y[i][j]<<" ";
        }
        cout<<endl;
    }                                       
    for(int i=0;i<m;i++) {
        for(int p=0;p<n;p++) {
            s=0;
            for(int j=0;j<n;j++)
                s+=x[i][j]*y[j][p];
            z[i][p]=s;
        }
    }
    cout<<"Array C:\n";
    for(int i=0;i<m;i++) {
        for(int j=0;j<n;j++) {
            cout<<setw(3)<<z[i][j]<<" ";
        }
        cout<<endl;
    }
    system("pause");
    return 0;
}
0
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 278
24.05.2013, 00:33  [ТС] #3
А Почему три двумерных массива?:
0
TheVlad
5 / 5 / 1
Регистрация: 24.10.2012
Сообщений: 102
24.05.2013, 00:37 #4
Цитата Сообщение от names1995 Посмотреть сообщение
А Почему три двумерных массива?:
1 - первая матрица , 2 - вторая матрица, 3 - результат умножения
0
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 278
24.05.2013, 00:38  [ТС] #5
ах, ну да, а как сделать так чтобы первые две матрицы вводились с клавиатуры?
0
TheVlad
5 / 5 / 1
Регистрация: 24.10.2012
Сообщений: 102
24.05.2013, 00:40 #6
Цитата Сообщение от names1995 Посмотреть сообщение
ах, ну да, а как сделать так чтобы первые две матрицы вводились с клавиатуры?
будет примерно так

C++
1
2
3
4
5
6
7
cout<<"Array A:\n";
    for(int i=0;i<m;i++) {                   
        for(int j=0;j<n;j++) {
            cin>>x[i][j];
            cout<<setw(3)<<x[i][j]<<" ";
        }
аналогически для другой
[/CPP]
0
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 278
24.05.2013, 00:51  [ТС] #7
спасибо, а транспонирование свапом наверное?

Добавлено через 7 минут
говорит m и n не объявлены почему?

Добавлено через 2 минуты
бесконечный цикл происходит
0
TheVlad
5 / 5 / 1
Регистрация: 24.10.2012
Сообщений: 102
24.05.2013, 01:22 #8
Цитата Сообщение от names1995 Посмотреть сообщение
спасибо, а транспонирование свапом наверное?

Добавлено через 7 минут
говорит m и n не объявлены почему?

Добавлено через 2 минуты
бесконечный цикл происходит
присмотрись сюда.
C++
1
const int m=5, n=5;
Добавлено через 13 минут
Цитата Сообщение от TheVlad Посмотреть сообщение
присмотрись сюда.
C++
1
const int m=5, n=5;
100% рабочее умножение
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
# include <iostream>
# include <iomanip>
int main()
{
    setlocale(LC_ALL, "rus");
    using namespace std;
    const int m=5, n=5;
    int x[m][n], y[m][n], z[m][n], s;
    cout<<"Array A:\n";
 
    for(int i=0;i<m;i++){  
        for(int j=0;j<n;j++){
            cout<<"введите "<<(j+1)<<" елемент "<<(i+1)<<" строки"<<endl;
            cin>>x[i][j];
        }  cout<<endl;}
 
    cout<<"Array B:\n";
    for(int i=0;i<m;i++) {                  
        for(int j=0;j<n;j++) {
            cout<<"введите "<<(j+1)<<" елемент "<<(i+1)<<" строки"<<endl;
            cin>>y[i][j];
          
        } cout<<endl; }
    
                                         
    for(int i=0;i<m;i++) {
        for(int p=0;p<n;p++) {
            s=0;
            for(int j=0;j<n;j++)
                s+=x[i][j]*y[j][p];
            z[i][p]=s;
        }
    }
    cout<<"Array C:\n";
    for(int i=0;i<m;i++) {
        for(int j=0;j<n;j++) {
            cout<<setw(3)<<z[i][j]<<" ";
        }
        cout<<endl;
    }
    system("pause");
    return 0;
}
0
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 278
24.05.2013, 02:06  [ТС] #9
сделал я, спасибо тебе тоже помог
вот код
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
# include <iostream>
# include <iomanip>
#include <conio.h>
#include <locale>
using namespace std; 
 
int main()
{  
     setlocale (0,"Russian");
     int m,n;
    
   cout <<"Ââåäèòå êîëè÷åñâòî ñòðîê Г¬Г*òðèö: ";
     cin >>m;
   cout <<"Ââåäèòå êîëè÷åñâòî ñòîëáöîâ Г¬Г*òðèö: ";
     cin >>n;
    int x[m][n], y[m][n], z[m][n], s;
    cout<<"Ââåäèòå Г¬Г*òðèöó A:" <<endl;
    for(int i=0;i<m;i++) {                   
        for(int j=0;j<n;j++) {
            cin >>x[i][j];
        }
    }                                         
    cout<<"Ââåäèòå Г¬Г*òðèöó B:" <<endl;
    for(int i=0;i<m;i++) {                   
        for(int j=0;j<n;j++) {
         cin >> y[i][j];
           
        }
    }                                       
    for(int i=0;i<m;i++) {
        for(int p=0;p<n;p++) {
            s=0;
            for(int j=0;j<n;j++)
                s+=x[i][j]*y[j][p];
            z[i][p]=s;
        }
    }
    cout<<"ГЊГ*òðèöГ* C:" <<endl;
    for(int i=0;i<m;i++) {
        for(int j=0;j<n;j++) {
            cout<<setw(3)<<z[i][j]<<" ";
        }
        cout<<endl;
    }
    
     int temp;
    for(int i = 0; i < m; ++i)
    {
        for(int j = i; j < n; ++j)
        {
            temp = x[i][j];
           x[i][j] = x[j][i];
            x[j][i] = temp;
        }
    }
     cout <<"Г’Г°Г*Г*Г±ГЇГ®Г*èðîâГ*Г*Г*Г*Гї Г¬Г*òðèöГ* A: "<<endl;;
     for(int i=0;i<m;i++) {
        for(int j=0;j<n;j++) {
            cout<<setw(3)<<x[i][j]<<" ";
        }
        cout<<endl;
    }
   
   for(int i = 0; i < m; ++i)
    {
        for(int j = i; j < n; ++j)
        {
            temp = y[i][j];
           y[i][j] = y[j][i];
            y[j][i] = temp;
        }
    } 
     cout <<"Г’Г°Г*Г*Г±ГЇГ®Г*èðîâГ*Г*Г*Г*Гї Г¬Г*òðèöГ* B: "<<endl;;
     for(int i=0;i<m;i++) {
        for(int j=0;j<n;j++) {
            cout<<setw(3)<<y[i][j]<<" ";
        }
        cout<<endl;
    }
   
   getch ();
    return 0;
}
0
24.05.2013, 02:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2013, 02:06
Привет! Вот еще темы с ответами:

Умножение матрицы на матрицу по правилу - C++
Привет всем. Было у меня задание &quot;найти сумму и разность матриц&quot;, с чем я легко справился (код приложу ниже). Но тут мне сказали, сделать...

1)Даны две действительные квадратные матрицы порядка n. Получить новую матрицу : А) умножение элементов каждой строки первой матрицы на наибольшее из - C++
1)Даны две действительные квадратные матрицы порядка n. Получить новую матрицу : А) умножение элементов каждой строки первой матрицы на...

Умножение, сложение и транспонирование матриц - C++
помогите написать программу на языке с++ которая выполняет умножение, сложение и транспонирование матриц

Транспонирование, умножение и вычитание матриц, отчет в Mathcad - C++
Помогите пожалуйста написать программу, нужно в С++ сделать программу транспонирующий, умножающий, вычитающий матрицы и чтобы ответ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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