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

Умножение матриц - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ поиск корня методом касательных http://www.cyberforum.ru/cpp-beginners/thread175136.html
Задача: найти корень уравнения, используя метод касательных. Точность e=0.0001 (в принципе она не нужна, так как я ввожу ее самостоятельно); x принадлежит промежутку (те a и b, тоже ввожу их самостоятельно). Вроде алгоритм правильный, но сумма - нуль и колоссальное число итераций n Код: // óòî÷íåíèå êîðíåé ìåòîäîì êàñàòåëüíûõ. #include <conio.h> #include <stdio.h> #include <cmath> using...
C++ классы нужно разобратся с перегрузками и класами задача для класса А, компонентай-данным которого является пара целых чисел, создать несколько обьектов(например, A a(1,3), b(3,1)). реализовать для обьектов данного класса перегрузку операции += (a+=b) используя внешнюю по отнашению к классу функцию перегрузки. если можно, нужен исходник по проще, и с коментариями. через неделю здавать а нифига в этом... http://www.cyberforum.ru/cpp-beginners/thread175093.html
C++ компилятор и др
Теоретически в С++ все более или менее понятно, а вот практически ну вообще ничего! Нужно написать програмку в текстовом редакторе, откомпилировать, что то еще и запустить. А расскажите пожалуиста по шагово. Вот у меня есть задача, я скачиваю компилятор (любой?), куда там что вставлять, что после компилятора и как запускать? что надо скачивать?
C++ Перегрузка функций
Здравствуйте уважаемые програмисты:) У меня вот такое задание: В классе необходимо перегрузить нижеследующие операции, при этом две функции-операции должны быть реализованы как методы класса, а одна – как дружественная функция: • Присваивание «=»; • Сложение (в случае символьных полей сложение понимается как конкатенация) «+»; • Соответствие (равенство) «==». Вот как методы я перегрузил 2...
C++ Сумма ряда с заданной точностью http://www.cyberforum.ru/cpp-beginners/thread175045.html
Помогите пожалуйста, уже не знаю что и делать, неправильно решает программа... Для х ( -25 < x < 25) составить функцию, которая вычисляет сумму ряда с заданной точностью 0<eps<=1 . Считать, что требуемая точность достигнута, если очередное слагаемое оказалось по модулю меньше чем eps. Функция в качестве результата должна вернуть вычисленную сумму, количество учтенных слагаемых и последнее...
C++ Сумма по главной диагонали Сумма по главной диагонали Рассчитать общую сумму элементов, расположенных под главной диагональю в данном NxN квадратный стол. Вход Первая линия N (1 <= N <= 100). Тогда NxN таблице дается (все числа целые) Выход Общая сумма элементов, расположенных под главным диагоналям подробнее

Показать сообщение отдельно
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
13.10.2010, 01:14     Умножение матриц
Перемножение 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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
 
using namespace std;
 
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];
            }
}
 
        
 
int _tmain(int argc, _TCHAR* argv[])
{
    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 first matrix: ";
    std::cin >> row2;
    
    std::cout << "Enter number of columns of the first 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;
 
 
 
 
 
    //если число столбцов первой матрицы равно числу строк второй матрицы
    (col1 == row2) ? matrixmult(arr1,row1,col1, arr2,row2,col2, arr3,row3,col3) : cerr << " Error! ";
    
 
    std::cout << std::endl<< "Result matrix:" << std::endl;
    for (int i = 0; i < row3; ++i){
            for (int j = 0; j < col3; ++j)
                cout << arr3[i][j] << std::setw(3);
        cout << endl;
    }
 
 
 
    cin.get();
    cin.get();
    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]; 
}
 
Текущее время: 07:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru