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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.69
coldspirit
0 / 0 / 0
Регистрация: 30.10.2010
Сообщений: 39
#1

Найти произведение матриц - C++

09.12.2010, 23:22. Просмотров 3701. Ответов 3
Метки нет (Все метки)

Даны две матрицы. Найти произведение матриц. Размерности массивов, где хранятся матрицы, должны соответствовать правилам умножения матриц

 Комментарий модератора 
Дублирование тем запрещено правилами форума (п. 3.4).
Не плодите одинаковых тем.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2010, 23:22     Найти произведение матриц
Посмотрите здесь:

Найти произведение матриц - C++
17. Найти произведение матриц A(5,7) и D(5.7)

Найти произведение матриц - C++
Дано: прямоугольные матрицы A и B. Найти произведение AB. Вычисление элемента матрицы AB оформить как функцию.

Найти произведение матриц - C++
1)Даны матрицы А и В размера k×m и m×l соответственно. Найти произведение АВ. Перемножение матриц реализовать в виде функции.

Найти произведение двух матриц - C++
Найти произведение двух матриц (многомерных векторов) 5x6 и 6x5 элементов. #include "stdafx.h" #include <iostream> using...

Найти сумму и произведение матриц - C++
всем привет! помогите если сможете,,,как найти сумму матриц и произведение матриц,,заранее спасибо,,

pflfxf/VISUAL с++ Найти произведение матриц - C++
ЗАДАЧА. Найти произведение матриц A(m,n) и B(n,k). Таблица спецификаций № Идентификатор переменной или функции Назначение в...

Найти произведение двух матриц и минимальное значение результата - C++
#include <iostream.h> #include <conio.h> #include <stdlib.h> main() { srand(time(NULL)); int n,*tmp,p; ...

Массив: Найти произведение двух верхнеугольных матриц, которые храняться в упакованном виде в одномерных массивах. - C++
Найти произведение двух верхнеугольных матриц,которые храняться в упакованном виде в одномерных масивах.

Произведение матриц - C++
Даны две матрицы. Получите их произведение.

Произведение матриц O(n^2) - C++
Кто нибудь может скинуть код произведения матриц со сложностью O(n^2)? Никак не получается решить задачу со стандартной функцией, Time...

Произведение матриц - C++
Вобщем вот задача:"Напишите перегружаемую функцию product, которая возвращает произведение вещественных квадратных матриц либо комплексных...

Произведение матриц - C++
Здравствуйте. Помогите, пожалуйста, решить задачу. Программу написал, но она выдает ошибку. Подскажите, в чем проблема? Необходимо...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
10.12.2010, 00:21     Найти произведение матриц #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
#include <stdio.h>
 
#define LINE 3
#define COLUMNS 3
 
void enter_matr(int matr[][COLUMNS])
{
    for(int i = 0; i < LINE; ++i)
    {
        for(int j = 0; j < COLUMNS; ++j)
        {
            printf("\n\tmatr[%d][%d] -> ", i, j );
            scanf("%d", &matr[i][j]);
        }
    }
}
 
void print_matr(int matr[][COLUMNS])
{
    for(int i = 0; i < LINE; ++i)
    {
        for(int j = 0; j < COLUMNS; ++j)
        {
            printf(" %d ", matr[i][j]);
        }
        printf("\n");
    }
}
 
void multi_matr(int matr[][COLUMNS], int _matr[][COLUMNS])
{
    for(int i = 0; i < LINE; ++i)
    {
        for(int j = 0; j < COLUMNS; ++j)
        {
            int tmp = matr[i][j] * _matr[i][j];
            printf("   %d ", tmp);
        }
        printf("\n");
    }
}
 
int main(void)
{
    int matr[LINE][COLUMNS], _matr[LINE][COLUMNS];
 
    printf("Enter first matrix: ");
    enter_matr(matr);
 
    printf("\nEnter second matrix: ");
    enter_matr(_matr);
 
    printf("\nFirst matrix: \n");
    print_matr(matr);
 
    printf("\nSecond matrix: \n");
    print_matr(_matr);
 
    printf("\nMultiplication matrix: \n");
    multi_matr(matr, _matr);
    return 0;
}
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
10.12.2010, 00:26     Найти произведение матриц #3
asics, Матрицы перемножаются не так.
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
12.12.2010, 15:28     Найти произведение матриц #4
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
#include <iostream>
#include <iomanip>
 
void matrixmult( int **m1, int m1_row, int m1_col, int **m2, int m2_row, int m2_col, int **m3, int m3_row, int m3_col);
 
void matrixfill( int **m, int row, int col)
{
                for (int i = 0; i < row; ++i)
                        for (int j = 0; j < col; ++j)
                        {
                                std::cout << "Enter [ " << i << " ][ " << j <<" ] element: ";
                                std::cin >> m[i][j];
                        }
}
 
void print_matr(int **m, int row, int col)
{
    for (int i = 0; i < row; ++i)
    {
        for (int j = 0; j < col; ++j)
            std::cout << std::setw(3) << m[i][j] << ' ';
 
        std::cout << std::endl;
    }
}
 
int main()
{
        int row1 = 0;
        int col1 = 0;
 
        std::cout << "Enter number of rows of the first matrix: ";
        std::cin >> row1;
 
        std::cout << "Enter number of columns of the first matrix: ";
        std::cin >> col1;
 
        int **arr1 = new int*[row1];
        for (int i = 0; i < row1; ++i)
                arr1[i] = new int[col1];
 
        matrixfill(arr1,row1,col1);
 
        int row2 = 0;
        int col2 = 0;
 
        std::cout << "Enter number of rows of the second matrix: ";
        std::cin >> row2;
 
        std::cout << "Enter number of columns of the second matrix: ";
        std::cin >> col2;
 
        int **arr2 = new int*[row2];
        for (int i = 0; i < row2; ++i)
                arr2[i] = new int[col2];
 
        matrixfill(arr2,row2,col2);
 
        int row3 = row1;
        int col3 = col2;
 
        int **arr3 = new int*[row3];
        for (int i = 0; i < row3; ++i)
                arr3[i] = new int[col3];
 
        for (int i = 0; i < row3; ++i)
                        for (int j = 0; j < col3; ++j)
                                arr3[i][j] = 0;
 
        std::cout << "\nFirst matrix: \n";
        print_matr(arr1, row1, col1);
 
        std::cout << "\nSecond matrix: \n";
        print_matr(arr2, row2, col2);
        //если число столбцов первой матрицы равно числу строк второй матрицы
        if(col1 == row2)
            matrixmult(arr1,row1,col1, arr2,row2,col2, arr3,row3,col3);
 
        else
        {
            std::cerr << " Error! " << std::endl;
            return 1;
        }
 
        std::cout << "\nResult matrix:" << std::endl;
        print_matr(arr3, row3, col3);
 
        for(int i = 0; i < row1; i++)
          delete[] arr1[i];
        delete[] arr1;
        for(int i = 0; i < row2; i++)
           delete[] arr2[i];
        delete[] arr2;
        for(int i = 0;i < row3 ; i++)
            delete[] arr3[i];
        delete[] arr3;
 
        return 0;
}
 
 
 
void matrixmult( int **m1, int m1_row, int m1_col, int **m2, int m2_row, int m2_col, int **m3, int m3_row, int m3_col)
{
        for (int k = 0; k < m2_col; ++k)
                for (int i = 0; i < m1_row; ++i)
                        for (int j = 0; j < m1_col; ++j)
                                m3[i][k] += m1[i][j] * m2[j][k];
}
Yandex
Объявления
12.12.2010, 15:28     Найти произведение матриц
Ответ Создать тему
Опции темы

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