1 / 1 / 0
Регистрация: 31.10.2011
Сообщений: 26
1

Массив: перемножения двух матриц A,B размерности n*n

12.04.2012, 09:40. Показов 2427. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Разработать программу перемножения двух матриц A,B размерности n*n. Все матрицы размещаются в оперативной памяти динамически с помощью операции new, а значение n вводится по запросу с клавиатуры. В конце работы программы освободить выделенную память. Вывести исходные и результирующую матрицы.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.04.2012, 09:40
Ответы с готовыми решениями:

Ошибка в алгоритме перемножения двух матриц
Ошибка в алгоритме произведения двух матриц. Я так понял, что где-то выходит за границы массивов. ...

Оптимизация алгоритма перемножения двух матриц
Здравствуйте, нужна помощь. Есть 2 матрицы, нужно их перемножить так, что бы алгоритм выполнялся...

Из двух целочисленных массивов различной размерности сформировать общий массив. Упорядочить полученный массив
Кто может сделайте пожалуйста. Из двух целочисленных массивов различной размерности сформировать...

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

2
Заблокирован
Автор FAQ
12.04.2012, 09:54 2
fruktovaya, пока посмотрите сюда
https://www.cyberforum.ru/faq/... ost2464869
а я тем временем накидаю код...
0
Заблокирован
Автор FAQ
12.04.2012, 10:08 3
Лучший ответ Сообщение было отмечено как решение

Решение

Вот код и результат работы
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
#include <iostream>
using namespace std;
 
//Âûâîäèò íà ýêðàí âåêòîð
void out(int n, int * vec)
{
    for(int j = 0; j < n; j++)
        cout<<vec[j]<<" ";
    cout<<endl;
}
 
//Âûâîäèò íà ýêðàí ìàòðèöó
void out(int m, int n, int ** arr)
{
    for(int i = 0; i < m; i++)
        out(n,arr[i]);
}
 
int main()
{
    int i, j, k;
    //Ïåðåìåííûå áóäóò ñîäåðæàòü ðàçìåðíîñòè ìàòðèö
    int mA, nA;
    int mB, nB;
 
    //Óêàçàòåëè íà íàøè ìàòðèöû
    int ** A = NULL;
    int ** B = NULL;
    int ** C = NULL;//Ðåçóëüòèðóþùàÿ ìàòðèöà
    cout<<"Enter number of rows in A : ";cin>>mA;
    cout<<"Enter number of cols in A : ";cin>>nA;
 
    A = new int * [mA];//Âûäåëÿåì ïàìÿòü ïîä óêàçàòåëè íà ñòðîêè ìàòðèöû À
    for(i = 0; i < mA; i++)
    {
        A[i] = new int[nA];//Âûäåëÿåì ïàìÿòü ïîä ýëåìåíòû ñòðîêè ìàòðèöû À
        for(j = 0; j < nA; j++)
        {
            cout<<"A["<<i + 1<<"]["<<j + 1<<"] = ";
            cin>>A[i][j];
        }
    }
 
    cout<<"Enter number of rows in B : ";cin>>mB;
    cout<<"Enter number of cols in B : ";cin>>nB;
 
    B = new int * [mB];//Âûäåëÿåì ïàìÿòü ïîä óêàçàòåëè íà ñòðîêè ìàòðèöû B
    for(i = 0; i < mB; i++)
    {
        B[i] = new int[nB];//Âûäåëÿåì ïàìÿòü ïîä ýëåìåíòû ñòðîêè ìàòðèöû B
        for(j = 0; j < nB; j++)
        {
            cout<<"B["<<i + 1<<"]["<<j + 1<<"] = ";
            cin>>B[i][j];
        }
    }
 
    C = new int * [mA];//Âûäåëÿåì ïàìÿòü ïîä óêàçàòåëè íà ñòðîêè ìàòðèöû C
    for(i = 0; i < mA; i++)
    {
        C[i] = new int[nB];//Âûäåëÿåì ïàìÿòü ïîä ýëåìåíòû ñòðîêè ìàòðèöû C
        for(j = 0; j < nB; j++)
        {
            C[i][j] = 0;
            for(k = 0; k < nA; k++)
            {
                C[i][j] += A[i][k]*B[k][j];
            }
        }
    }
    system("cls");//Î÷èñòèì ýêðàí
    cout<<"Matrix A\n";
    out(mA, nA, A);
 
    cout<<"Matrix B\n";
    out(mB, nB, B);
 
    cout<<"Matrix C = A*B\n";
    out(mA, nB, C);
    system("pause");//Ñòîï òî÷êà
 
    //×èñòèì ïàìÿòü
    for(i = mA - 1; 0 < i; i--)
        delete [] C[i];
    delete [] C;
    return 0;
}
Миниатюры
Массив: перемножения двух матриц A,B размерности n*n   Массив: перемножения двух матриц A,B размерности n*n  
3
12.04.2012, 10:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2012, 10:08
Помогаю со студенческими работами здесь

Функция перемножения матриц.
Функция mult, прошу помощи, ибо не пойму в чем ошибка. #include &lt;iostream&gt; #include &lt;math.h&gt;...

Оптимизация перемножения матриц
Доброго времени суток! Помогите пожалуйста с оптимизацией перемножения матриц. Транспонировал,...

Оператор перемножения матриц
не работает оператор* двух матриц, никак не могу понять как сделать так, чтобы в операторе была уже...

Программа перемножения 2 матриц
ДОброго времени суток прошу помочь написать программу перемножения 2 матриц,матрицы вводятся с...


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

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

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