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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Pavel1133
3 / 3 / 0
Регистрация: 12.10.2009
Сообщений: 81
#1

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

01.12.2009, 13:44. Просмотров 732. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2009, 13:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс Матриц ( исправьте Ошибки плз) (C++):

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

Исправьте ошибки - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void main () { int N,M; int min=0, i, j;//переменные для цикла ...

Исправьте ошибки - C++
На 10, 12, 16, 18 строках K, p, N, K соответственно, выдаёт was not declared in this scope. Помогите исправить. #include &lt;iostream&gt; ...

Исправьте ошибки! - C++
Перемножение двух матриц. Мой код:#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; void proizv...

исправьте ошибки - C++
Задание прикрепил, 1 вариант. Вот такой код набрал, как описывает задание, но выдает ошибки, что делать не понимаю. ...

Исправьте ошибки - C++
Ошибка не объявлена __MessageBoxA , chTitle , hProcess #define _CRT_SECURE_NO_WARNINGS #include &lt;iostream&gt; #include &lt;Windows.h&gt;...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
M128K145
Эксперт С++
8286 / 3505 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
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;
}

В следующий раз пиши еще и сообщения ошибок, и следи за правильностью набора - все ошибки заключались именно в этом
Том Ардер
Модератор
Эксперт по математике/физике
3740 / 2353 / 294
Регистрация: 15.06.2009
Сообщений: 4,210
01.12.2009, 14:12 #3
Внимательно прочитать сообщения компилятора (английский знать надо хотя бы на этом уровне - it's a must), и поправить:

строка 16 - убрать, т.к. противоречит строкам 24, 25, 26
строка 33 - опечатка
в строках 43-45 разобраться с Matrix и matrix
строки 15 и 98 - устранить несоответствие описаний
Pavel1133
3 / 3 / 0
Регистрация: 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 ==========
M128K145
Эксперт С++
8286 / 3505 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
01.12.2009, 14:49 #5
Добавь
C++
1
2
3
4
int main()
{
    return 0;
}
у тебя же просто нету точки входа в программу, текст ошибки об этом так сразу и говорит
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2009, 14:49
Привет! Вот еще темы с ответами:

Работа с массивом (исправте ошибки плз) - C++
Найти максимальное значение и заменить его индексом элементы массива меньше чем -5 массив от 100 до -100 #include &lt;stdio.h&gt; ...

исправьте ошибки в коде - C++
1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: • сумму отрицательных элементов массива; • упорядочить...

исправьте ошибки в коде - C++
я понимаю что написал код не правильно исправьте пожалуйста #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;iostream&gt; using...

Исправьте пожалуйста ошибки - C++
Есть задача: создать массив данных о студентах группы. Записать имя, фамилию, год рождения каждого студента, оценки по пяти экзаменах. В...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.12.2009, 14:49
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru