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

Класс матриц с арифметическими операциями С++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Директива препроцессора #if http://www.cyberforum.ru/cpp-beginners/thread634990.html
Вобще при коспиляции файла взятого с офф сайта микрософт endian.h Получаю вот такие ошибки 17|error: operator '==' has no left operand 95|error: operator '==' has no left operand 131|error: operator '!=' has no left operand соответствено на строки #if (BIT_ORDER == BYTE_ORDER) // 17 #if BYTE_ORDER==BIG_ENDIAN // 95 #if (BYTE_ORDER != DEVICE_ORDER) // 131 Почему они возникают? Обе...
C++ Класс: создать класс "Person" 1,2 #include <iostream> #include <string> class Person { Person() : name("Alex"), address("Texas") {} private: std::string name; http://www.cyberforum.ru/cpp-beginners/thread634988.html
C++ Что лучше С++ 6 или С++ 2010 Что выбрать, мое мнение
Что лучше С++ 6 или С++ 2010 Что выбрать, мое мнение Вот я тут на днях думал и пришел к выводу, например если вы хотите чтобы ваша прога работала на windows xp или рание версии то лучше выбрать с++ 6 но к сожалинию у этой версии есть баг виснет она при написании кода. Лично я пробовал писать в с++ 2010 только лучше галочку на анси кодировку в студии поставить т.к. 2010 анси и юникод - по...
Преобразование void* в структуру C++
Как преобразовать HANDLE в структуру? В C# возможно написание следующего кода: public static extern IntPtr OpenFileMapping(int dwDesiredAccess, bool bInheritHandle, string lpName); public static extern IntPtr MapViewOfFile(IntPtr hFileMappingObject, int dwDesiredAccess, int dwFileOffsetHigh, int dwFileOffsetLow, int dwNumberOfbytesToMap); ...
C++ Аргументы командной строки http://www.cyberforum.ru/cpp-beginners/thread634979.html
Здравствуйте, у меня вопрос, почему программа сбрасывается, так и не выполнив никаких действий? Я знаю , что она возвращает 0 и выходит, но почему она не выполняет действие? #include "stdafx.h" #include "stdlib.h" #include <conio.h> #include <iostream> #include <string> #include <iomanip> #include <sstream> #include <stdexcept>
C++ Запись в текстовый файл адресов вместо строк Всем привет. Ребята, читаю из бинарного файла структуру и хочу все записать в текстовый файл. Структура struct Client { wchar_t strname;//ФИО клиента подробнее

Показать сообщение отдельно
Vlad1993
7 / 3 / 1
Регистрация: 08.08.2012
Сообщений: 62
Завершенные тесты: 3
08.08.2012, 23: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
117
118
119
120
121
122
123
#include<iostream>
 
using namespace std;
 
class Matrix{
    friend Matrix operator * (Matrix, Matrix);
    public:
    void SetMatrix();
    void GetMatrix();
    void SetSize(int size);
    void Transponation();
    Matrix operator+(const Matrix &rhs);
    Matrix operator*(const Matrix &rhs);
    Matrix operator-(const Matrix &rhs);
    Matrix operator*(const float &rhs);
    Matrix operator/(const float &rhs);
    private:
        int n;
        float a[10][10];
};
 
void Matrix::SetMatrix(){
    int i,j;
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            cin>>a[i][j];
}
 
void Matrix::GetMatrix(){
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++)
            cout<<a[i][j]<<" ";
        cout<<endl;
    }
}
 
void Matrix::SetSize(int size){
    n=size;}
;
 
Matrix Matrix::operator+(const Matrix &rhs){
      Matrix result(*this);
      for (int i = 0; i <n; i++)
        for (int j = 0; j <n; j++)
            result.a[i][j] = a[i][j] + rhs.a[i][j];
return result;
}
 
Matrix operator*(Matrix A,Matrix B){
      Matrix result;
      for(int i=0;i<A.n;i++){
          for(int j=0;j<A.n;j++)
              result.a[i][j]=0;
              for(int k=0;k<A.n;k++)
                  result.a[i][j]+=A.a[i][k]*B.a[k][j];
      }
    return result;  
}
 
Matrix Matrix::operator-(const Matrix &rhs){
      Matrix result(*this);
      for (int i = 0; i <n; i++)
        for (int j = 0; j <n; j++)
            result.a[i][j] = a[i][j] - rhs.a[i][j];
return result;
}
 
Matrix Matrix::operator*(const float &rhs){
    Matrix result(*this);
    for (int i = 0; i <n; i++)
        for (int j = 0; j <n; j++)
            result.a[i][j]*=rhs;
return result;
}
 
Matrix Matrix::operator/(const float &rhs){
    Matrix result(*this);
    for (int i = 0; i <n; i++)
        for (int j = 0; j <n; j++)
            result.a[i][j]/=rhs;
return result;
}
 
void Matrix::Transponation(){
    float tmp;
    for(int i=0;i<n;i++)
        for(int j=i;j<n;j++){
            tmp=a[i][j];
            a[i][j]=a[j][i];
            a[j][i]=tmp;
    }
}
 
int main(void){
    Matrix a,b,c;
    int size;
    float koef;
    cin>>size;
    cin>>koef;
    a.SetSize(size);
    b.SetSize(size);
    a.SetMatrix();
    b.SetMatrix();
    cout<<"Sum:"<<endl;
    c=a+b;
    c.GetMatrix();
    cout<<"Differense:"<<endl;
    c=a-b;
    c.GetMatrix();
    c=a*b;
    cout<<"Matrix multiplication"<<endl;
    c.GetMatrix();
    c=a*koef;
    cout<<"Multiplication by float:"<<endl;
    c.GetMatrix();
    c=a/koef;
    cout<<"Dividing by float:"<<endl;
    c.GetMatrix();
    cout<<"Transponation:"<<endl;
    a.Transponation();
    a.GetMatrix();
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru