3 / 3 / 1
Регистрация: 12.10.2009
Сообщений: 81
1

Класс Матриц ( исправьте Ошибки плз)

01.12.2009, 13:44. Показов 914. Ответов 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
#include <iostream>
#include <iomanip>
#include <fstream>
#include <stdlib.h>
using namespace std;
 
class Matrix{
    friend ostream &operator << (ostream &,const Matrix &);
    friend istream &operator >> (istream &,Matrix &);
public:
    Matrix(int=0,int=0);
    Matrix operator + (Matrix &);
    Matrix operator * (Matrix &);
    Matrix operator * (int);
    Matrix operator ++(int);
private:
        int nCols;
    int nRows;
    int **array;
};
 
ostream &operator<<(ostream &output, const Matrix &matrix)
{
    for(int j=0;j<matrix.nCols;j++){
        for(int k=0;k<matrix.nRows;k++){
            output<<setw(5)<<matrix.array[j][k]<<setw(5);
        }
        output<<endl;
    }
    return output;
}
 
istreaam &operator>>(istream &input,Matrix &matrix)
{
    for(int j=0;j<matrix.nCols;j++){
        for(int k=0;k<matrix.nRows;k++){
            input>>matrix.array[j][k];
        }
    }
    return input;
}
 
Matrix Matrix::operator +(matrix &matrix){
    int i=Matrix.nCols;
    int j=Matrix.nRows;
    if((i!=nCols)||(j!=nRows)){
        cout<<"nesootvetstvie matric"<<endl;
        exit(1);
    }
    else{
        Matrix Sum(i,j);
        for(int a=0;a<i;a++)
            for(int b=0;b<j;b++)
                Sum.array[a][b]=array[a][b]+matrix.array[a][b];
        return Sum;
    }
}
 
Matrix Matrix::operator *(Matrix &matrix){
    int i=matrix.nCols;
    int j=matrix.nRows;
    if(nRows!=i){
        cout<<" nesootvetstvie matric"<<endl;
        exit(1);
    }
    else {
        Matrix Mul(nCols,j);
        for(int a=0;a<nCols;a++){
            for(int b=0;b<j;b++){
                Mul.array[a][b]=0;
                for(int c=0;c<i;c++){
                    Mul.array[a][b]=Mul.array[a][b]+((array[a][c])*(matrix.array[c][b]));
                }
            }
        }
        return Mul;
    }
}
 
Matrix Matrix::operator *(int scal){
    int i=nCols;
    int j=nRows;
    Matrix Mults(i,j);
    for(int a=0;a<i;a++)
        for(int b=0;b<j;b++)
            Mults.array[a][b]=(array[a][b])*scal;
    return Mults;
}
 
Matrix::Matrix(int str,int stolb){
    array=new int * [str];
    for(int i=0;i<str;i++)
        array[i]=new int[stolb];
    nCols=str;
    nRows=stolb;
}
 
Matrix Matrix::operator ++ (){
    int i=nCols;
    int j=nrows;
    Matrix Summ(i,j);
    for(int a=0;a<i;a++)
        for(int b=0;b<j;b++)
            Summ.array[a][b]=(array[a][b])+5;
    return Summ;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2009, 13:44
Ответы с готовыми решениями:

8 класс исправьте плз прогу(условие прилагается)
условие: Вводится последовательность полож. целых чисел после которых вводится 0(признак конца...

Исправьте плз оператор вывода в моей программе...
так чтобы значения нового массива выводились ровно под значениями исходного массива, как в матрице...

Определите класс матриц. Напишите перегруженные конструкторы для создания одномерной и двумерной матриц. В конструкторы передаются размерности матриц
Доброго времени суток всем) Извините если не в том разделе) Не могу понять как решить данную...

ПРОВЕРТЕ НА ОШИБКИ ПЛЗ!
была такая задача: Составить программу, которая для заданного начального каталогов файловой системы...

4
Эксперт JavaЭксперт С++
8378 / 3600 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
01.12.2009, 14:07 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
102
103
104
105
106
#include <iostream>
#include <iomanip>
#include <fstream>
#include <stdlib.h>
using namespace std;
 
class Matrix{
    friend ostream &operator << (ostream &,const Matrix &);
    friend istream &operator >> (istream &,Matrix &);
public:
    Matrix(int=0,int=0);
    Matrix operator + (Matrix &);
    Matrix operator * (Matrix &);
    Matrix operator * (int);
    Matrix operator ++();
private:
    int nCols;
    int nRows;
    int **array;
};
 
ostream &operator<<(ostream &output, const Matrix &matrix)
{
    for(int j=0;j<matrix.nCols;j++){
        for(int k=0;k<matrix.nRows;k++){
            output<<setw(5)<<matrix.array[j][k]<<setw(5);
        }
        output<<endl;
    }
    return output;
}
 
istream &operator>>(istream &input,Matrix &matrix)
{
    for(int j=0;j<matrix.nCols;j++){
        for(int k=0;k<matrix.nRows;k++){
            input>>matrix.array[j][k];
        }
    }
    return input;
}
 
Matrix Matrix::operator +(Matrix &matrix){
    int i = matrix.nCols;
    int j = matrix.nRows;
    if((i!=nCols)||(j!=nRows)){
        cout<<"nesootvetstvie matric"<<endl;
        exit(1);
    }
    else{
        Matrix Sum(i,j);
        for(int a=0;a<i;a++)
            for(int b=0;b<j;b++)
                Sum.array[a][b]=array[a][b]+matrix.array[a][b];
        return Sum;
    }
}
 
Matrix Matrix::operator *(Matrix &matrix){
    int i=matrix.nCols;
    int j=matrix.nRows;
    if(nRows!=i){
        cout<<" nesootvetstvie matric"<<endl;
        exit(1);
    }
    else {
        Matrix Mul(nCols,j);
        for(int a=0;a<nCols;a++){
            for(int b=0;b<j;b++){
                Mul.array[a][b]=0;
                for(int c=0;c<i;c++){
                    Mul.array[a][b]=Mul.array[a][b]+((array[a][c])*(matrix.array[c][b]));
                }
            }
        }
        return Mul;
    }
}
 
Matrix Matrix::operator *(int scal){
    int i=nCols;
    int j=nRows;
    Matrix Mults(i,j);
    for(int a=0;a<i;a++)
        for(int b=0;b<j;b++)
            Mults.array[a][b]=(array[a][b])*scal;
    return Mults;
}
 
Matrix::Matrix(int str,int stolb){
    array=new int * [str];
    for(int i=0;i<str;i++)
        array[i]=new int[stolb];
    nCols=str;
    nRows=stolb;
}
 
Matrix Matrix::operator ++ (){
    int i = this->nCols;
    int j = this->nRows;
    Matrix Summ(i,j);
    for(int a=0;a<i;a++)
        for(int b=0;b<j;b++)
            Summ.array[a][b]=(array[a][b])+5;
    return Summ;
}

В следующий раз пиши еще и сообщения ошибок, и следи за правильностью набора - все ошибки заключались именно в этом
0
Модератор
Эксперт по математике/физике
4214 / 3409 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
01.12.2009, 14:12 3
Внимательно прочитать сообщения компилятора (английский знать надо хотя бы на этом уровне - it's a must), и поправить:

строка 16 - убрать, т.к. противоречит строкам 24, 25, 26
строка 33 - опечатка
в строках 43-45 разобраться с Matrix и matrix
строки 15 и 98 - устранить несоответствие описаний
0
3 / 3 / 1
Регистрация: 12.10.2009
Сообщений: 81
01.12.2009, 14:25  [ТС] 4
M128K145

спасибо ошибок меньше стало но всё же есть:



1>MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
1>\\fpmi-servstud\kurs1\astrauh\class matric\Debug\class matric.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://\\fpmi-servstud\kurs1\astrauh\class matric\class matric\Debug\BuildLog.htm"
1>class matric - 2 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
0
Эксперт JavaЭксперт С++
8378 / 3600 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
01.12.2009, 14:49 5
Добавь
C++
1
2
3
4
int main()
{
    return 0;
}
у тебя же просто нету точки входа в программу, текст ошибки об этом так сразу и говорит
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2009, 14:49
Помогаю со студенческими работами здесь

найдите плз ошибки
program massiv ; {Дан массив А(n).Если все его элементы упорядочены по возростанию, ...

Создать класс матриц, обеспечивающий размещение матриц произвольного размера
Не знаю правильно ли вообще написана прога(по заданию имею ввиду), но она вообще не работает, не...

Укажите на возможные ошибки, плз
Удалите тему.

Исправьте ошибки
Это программа горячих клавиши для гугла, нажимаешь например alt+w и вставляется...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru