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

Вычислить все возможные произведения матриц. Упорядочить по возрастанию элементы главной диагонали... - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка по алфавиту http://www.cyberforum.ru/cpp-beginners/thread838883.html
Вот программа , там сортировка по нумерации поездов, а нужна по ПУНКТАМ назначения, кто знает поправите, спасибо. #include<iostream> #include<conio.h> #include<stdio.h> #include<string.h> using namespace std;
C++ Динамический массив указателей Нужен массив указателей на тип родительского класса Game, как его правильно оформить? То что я написал выдает ошибку. #include <iostream> #include <windows.h> using std::cout; using std::cin; using std::endl; http://www.cyberforum.ru/cpp-beginners/thread838861.html
Необработанное исключение в "0x778e15de" в "dir-3.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000000" C++
#include <windows.h> #include <d3d9.h> LRESULT __stdcall WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); struct vertex { float x,y,z; unsigned long color; };
C++ Квадратичная функция
Помогите написать программу аппроксимацию квадратичной функции. Вот сама аппроксимация
C++ Массив: Вставить в последовательность действительное число b так, чтобы последовательность осталась неубывающей. http://www.cyberforum.ru/cpp-beginners/thread838825.html
дана последовательность действительных чисел. вставить в нее действительное число b так, чтобы последовательность осталась неубывающей. Написал код вроде правильно, но сдвигать массив перед тем как вставить число b не хочет ни в какую: //--------------------------------------------------------------------------- #include <vcl.h> #include <iostream.h> #pragma hdrstop ...
C++ разработка нерекурсивных функций помогите плииз)) не могу разобраться в задаче:вычислить значение выражения a/b+c/d; результат представить в виде обыкновенной дроби, выполнив сокращение. подробнее

Показать сообщение отдельно
xackep
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 20
15.04.2013, 21:37     Вычислить все возможные произведения матриц. Упорядочить по возрастанию элементы главной диагонали...
Даны четыре вещественные матрицы произвольной размерности (размерности вводятся пользователем). Вычислить все возможные произведения матриц. Упорядочить по возрастанию элементы главной диагонали той из полученных матриц, след которой является наибольшим (следом матрицы называется сумма элементов главной диагонали). Если в результате вычисления произведений получена одна матрица, применить к ней указанное упорядочение.

вот, что я сделал совместными усилиями с одним знакомым, дальше мне сказал самому делать:

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
110
111
112
113
114
115
116
#include "stdafx.h"
#include <iostream>
using namespace std;
 
 class matrix {                                                 // клас матрица
        private:                                                //писать необязательно
        float **p_m;
        int n, m;
        public:
            matrix();                                           //конструктор по умолчанию
        matrix (int count_n, int count_m);                      //конструктор инициализации
        matrix (const matrix& matr);                            //конструктор копирования
        matrix operator*(matrix& umn1);
        friend istream& operator >> (istream& is, matrix& matr);
        friend ostream& operator << (ostream& os, matrix& matr);
        ~matrix();
        };
 matrix::matrix()
 {
     m=0;
     n=0;
 }
 matrix::matrix(int count_m, int count_n)
 {
     m=count_m;
     n=count_n;
     p_m = new float *[m];
     for (int i=0; i<m; i++)
     {
         p_m[i]=new float [n];
     }
     for (int i=0; i<m; i++)
     {
         for (int j=0; j<n; j++)
             p_m[i][j]=0;
     }
 }
 
 matrix::matrix (const matrix& matr)
 {
     m=matr.m;
     n=matr.n;
     p_m = new float *[m];
     for (int i=0; i<m; i++)
     {
         p_m[i]=new float [n];
     }
     for (int i=0; i<m; i++)
     {
         for (int j=0; j<n; j++)
             p_m[i][j]=matr.p_m[i][j];
     }
 }
 
 matrix::~matrix()
 {
 }
 
 istream& operator >> (istream& is, matrix& matr)
 {
     int m, n;
     cout << "ВВедите размер матрицы через пробел: ";
     is >> m; 
     is >> n;
     matr = matrix (m, n);
     for (int i=0; i<matr.m; i++)
         for (int j=0; j<matr.n; j++)
             matr.p_m[i][j] = rand()%10/2;
     return is;
 }
 matrix matrix::operator *(matrix &umn1)
{
    float sum;
    matrix umn(this->m,umn1.n);
    if (this->n==umn1.m)
    {
        for(int i=0;i<this->m;i++)
            for(int j=0;j<umn1.n;j++)   
            {
                sum=0;
                for(int k=0;k<this->n;k++)
                    sum+=p_m[i][k]*umn1.p_m[k][j];
                umn.p_m[i][j]=sum;
            }
    }
    else
        cout<< "Error: incorrect size of the matrix";
    return umn;
}
ostream& operator << (ostream& os, matrix& matr)
{
    for (int i=0; i<matr.m; i++)
    {
        for (int j=0; j<matr.n; j++)
            os << "\t" << matr.p_m[i][j];
        cout << endl;
    }
    return os;
}
 
 void main ()
 {
     setlocale(LC_CTYPE, "rus");            //функция для включения русского языка
     matrix A;
     matrix B;
     matrix C;
     matrix D;
     cin >> A;
     cin >> B;
     cin >> C;
     cin >> D;
 
     matrix E=A*B;
     cout << E;
     system("pause");
 }
а непонятно мне, собственно, как зафигачить сюда, например, алгоритм сортировки главной диагонали:
C++
1
2
3
4
5
6
7
8
9
10
for(int i=0; i<n; i++)
        for(int j=0; j<n-i; j++)
        {
            if(A[j][j] > A[j+1][j+1])
            {
                int tmp = A[j][j];
                A[j][j] = A[j+1][j+1];
                A[j+1][j+1] = tmp;
            }
        }
и как работать с получившимися после перемножения матрицами? в исходнике я умножать пока не стал, ибо не ясно - то ли нужно умножить "тупо" в main или задать какую то функцию, которая сама перемножит их...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru