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

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

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

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

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

Составить программу производящую следующие операции над матрицами (умножение матрицы на матрицу) и транспонирование матрицы..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2013, 00:22     Составить программу, производящую умножение матрицы на матрицу и транспонирование
Посмотрите здесь:
C++ Умножение, вычисление ранга, транспонирование, норма матрицы
Класс Квадратная матрица. Методы: умножение на матрицу, умножение на константу, вывод элементов матрицы на дисплей C++
С клавиатуры вводится две матрицы вычислить: сложение, вычитание, умножение, транспонирование. C++
Умножение матрицы на матрицу, и нахождение обратной матрицы C++
C++ Реализовать умножение матрицы на матрицу и матрицы на вектор
C++ Умножение матрицы на матрицу
Умножение матрицы на матрицу по правилу C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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;
}
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 276
24.05.2013, 00:33  [ТС]     Составить программу, производящую умножение матрицы на матрицу и транспонирование #3
А Почему три двумерных массива?:
TheVlad
5 / 5 / 1
Регистрация: 24.10.2012
Сообщений: 102
24.05.2013, 00:37     Составить программу, производящую умножение матрицы на матрицу и транспонирование #4
Цитата Сообщение от names1995 Посмотреть сообщение
А Почему три двумерных массива?:
1 - первая матрица , 2 - вторая матрица, 3 - результат умножения
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 276
24.05.2013, 00:38  [ТС]     Составить программу, производящую умножение матрицы на матрицу и транспонирование #5
ах, ну да, а как сделать так чтобы первые две матрицы вводились с клавиатуры?
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]
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 276
24.05.2013, 00:51  [ТС]     Составить программу, производящую умножение матрицы на матрицу и транспонирование #7
спасибо, а транспонирование свапом наверное?

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

Добавлено через 2 минуты
бесконечный цикл происходит
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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2013, 02:06     Составить программу, производящую умножение матрицы на матрицу и транспонирование
Еще ссылки по теме:
1)Даны две действительные квадратные матрицы порядка n. Получить новую матрицу : А) умножение элементов каждой строки первой матрицы на наибольшее из C++
Умножение, сложение и транспонирование матриц C++
C++ Транспонирование, умножение и вычитание матриц, отчет в Mathcad
C++ Ввод, транспонирование, умножение и сложение матриц используя функций
C++ Написать программу, производящую перевод часов и минут в минуты

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

Или воспользуйтесь поиском по форуму:
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 276
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;
}
Yandex
Объявления
24.05.2013, 02:06     Составить программу, производящую умножение матрицы на матрицу и транспонирование
Ответ Создать тему
Опции темы

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