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

Возведение матрицы в куб - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Code Blocks. Ошибка при компиляции "неправильный компилятор" http://www.cyberforum.ru/cpp-beginners/thread349822.html
Помогите разобраться. Качал пару версий code block - создаю новый проект, выбираю консоль, с++, пишу код (hello world:)), run and build - на выходе просто НИЧЕГО! Только сообщение, что-то вроде "неправильный компилятор". Пожалуйста, подскажите откуда скачать code block в полной сборке (с компилятором и прочим), а также как его настроить...
C++ Программа для инета на C++ Здравствуйте. Нужно написать программу, которая будет загружать исходный код сайта. Можно ли это сделать в рамках C++? http://www.cyberforum.ru/cpp-beginners/thread349809.html
C++ как сделать от и до
http://i024.***********/1109/b7/0177dc483f6c.jpg есть таблица тут данные,как могу сделать так чтобы когда я вожу значения если при проверки Iобм совподает то оно берят соответсвющию значению что нижэ её (d,мм),первую значеню я знаю как но те что дальшэ я не знаю,тоест не знаю как сделать так чтоб использовала диапазон от и до например от 25...60 и соответствено еи присваевыица значение (d,мм)...
Сумматор C++
Можете привести код оптимизированного сумматора?
C++ Требуется совершить обход квадратной матрицы по спирали http://www.cyberforum.ru/cpp-beginners/thread349780.html
помогите с этой задачкой )) Спираль (Время: 1 сек. Память: 16 Мб Сложность: 38%) Требуется совершить обход квадратной матрицы по спирали так, как показано на рисунке справа: заполнение происходит с единицы из левого верхнего угла и заканчивается в центре числом N2, где N – порядок матрицы. Входные данные
C++ Алгоритм построения функции привет, 1. не подскажите где найти алгоритм решения? 2. или готовое решение(исходники) на языках программирования? 3. и как это называется? =)) http://www.cyberforum.ru/attachment.php?attachmentid=95055&d=1315583067 подробнее

Показать сообщение отдельно
Screenly
2 / 2 / 0
Регистрация: 14.03.2011
Сообщений: 27
14.09.2011, 00:36  [ТС]     Возведение матрицы в куб
Полностью рабочий код. Программа может возводить как в куб, так и в четвертую степень. Если дописать еще одно умножение, то 5. И тд, и тп.

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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
#include <Windows.h>
 
using namespace std;
 
class Matrix
{
private:
    int **a; // динамический двумерный массив
    int n; // размерность массива
public:
    Matrix() { n = 0; a = NULL; }; // конструктор по умолчанию
    Matrix(int m) // конструктор
    {
        n=m;
        if (n <= 0) // проверяем размерность массива. если <=0, то выводим ошибку и обнуляем массив. 
        {
            n = 0;
            a = NULL;
            cout << "ОШИБКА! Размерность матрицы < или = 0" << endl;
        } else { // если размерность > 0, то выделяем память
            a = new int * [n];
            for (int i = 0; i < n; i++)
             {
                 a[i] = new int [n];
                 for (int j = 0; j < n; j++)
                     a[i][j] = 0;
            };
        };
    }
    
    void read() // функция чтения. Получает размерность массива (пользователь вводит с клавиатуры) и выделяет память под него.
    {
        cin>>n;
        if (n > 0) {
            a = new int * [n];
            for (int i = 0; i < n; i++)
             {
                 a[i] = new int [n];
                 for (int j = 0; j < n; j++)
                     a[i][j] = 0;
            };
        } else { n = 0; a = NULL; cout << "ОШИБКА! Размерность матрицы < или = 0" << endl; }; // если размерность < или = 0, то выводим ошибку и обнуляем массив
    }
    void random() // функция заполнения массива случайными числами
    {
        for (int i = 0; i < n; i++)
            for (int j = 0; j < n; j++)
                a[i][j]=rand()%10;
    }
    void print() // функция вывода результата на экран
    {
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n; j++)
                cout<<a[i][j]<<'\t';
            cout << endl;
        };
        
    }
 
    Matrix& operator=(const Matrix &m) // перегрузка оператора присваивания
    {
        n=m.n;
        a=new int * [n];
 
        for (int i = 0; i < n; i++)
        {
            a[i] = new int [n];
            for (int j = 0; j < n; j++)
                a[i][j] = 0;
        };
        
        for(int i = 0; i < n; i++)
            for(int j = 0; j < n; j++)
                a[i][j] = m.a[i][j];
        return *this;
    }
 
    Matrix operator *=(const Matrix& m)
    {
        int **tmp = new int * [n];
        for (int i = 0; i < n; i++)
        {
            tmp[i] = new int [n];
            for (int j = 0; j <n; j++)
                tmp[i][j] = 0;
        };
 
        for (int i = 0; i < n; i++)
            for (int j = 0; j < n; j++)
                for (int k = 0; k < n; k++)
                    tmp[i][j]+=a[i][k]*m.a[k][j];
        a = tmp;
        n = m.n;
        return *this;
    }
 
    Matrix operator * (const Matrix& m)
    {
    Matrix cub(Matrix *m);
    return m * m * m;
    }
 
 
};
 
 
int main ()
{
    setlocale(LC_ALL, "Rus");
    Matrix B;
    cout << "Введите размерность матрицы: ";
    B.read();
    cout << endl;
    cout << "Исходная матрица: " << endl;
    B.random();
    B.print();
    cout << endl;
    B=cub(m);
    cout << "Матрица в 3 степени: " << endl;
    B.print();
    cout << endl;
    cout << "Матрица в 4 степени: " << endl;
    B=cub(m)*m;
    B.print();
    cout << endl;
    system("pause");
}
Добавлено через 1 час 47 минут
Оу. Выложил старую версию, здесь есть бага с return m*m*m; Пожалуйста помогите её выловить, новый файл с решенным багом случайно делитнул ;( (что поделать, мозг закипает, 2 ночи уже. А готовая программа была в 23-20, вот черт меня дернул переделать немного её)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru