Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2011, 19:35   #1
doter
Пользователь
 
Регистрация: 25.09.2010
Сообщений: 34
По умолчанию класс с матрицами

всем привет. очень нужна ваша помощь. прогу написал , но выдает 2 какие-то странные ошибки. посмотрите плиз , если вас не затруднит.
ЗЫ : суть работы в том , чтобы написать класс , который обеспечивает работу с матрицами 2х2 , перегрузив основные операторы .

Заранее большое спасибо !

Код:
#include <iostream.h>
#include <conio.h>
#include <math.h>

const int l=2;
const int s=2;
int f;
 
    class matrix {   // êëàññ ìàòðèöà
        private:
        int **matr;
 void Create()
        {
            matr = new  int*[l];
            for (int z=0; z<s; z++)
                matr[z] = new int[s];
        }
        public:
		matrix (int l,int s);       
		int* operator[](int i) { return matr[i]; } 
const int* operator[](int i) const { return matr[i]; }     
        matrix operator+(const matrix & b);
        matrix operator-(const matrix & b);
        matrix operator*(const matrix & b);
        matrix operator*(int f);        
        void   In_put();
        void   Out_put();
 ~matrix()
        {
            for (int z=0; z<l; z++)
                delete[] matr[z];
            delete[] matr;
        }

        };
 
matrix  matrix::operator*(const matrix & b)
    {
	int i,j,k;
	matrix c(l,s);
for (i=0;i<l;i++)
	for (j=0;j<l;j++)
		for (k=0; k<l; k++)
			c[i][j]+=b[i][k]+(*this)[k][j];
return c;
    };

matrix matrix::operator * (int f)
{
int i,j;
matrix c(l,s);
for (i=0;i<l;i++)
	for (j=0;j<l;j++)
		c[i][j]=((*this)[i][j])*f;
return c;
};

 
matrix matrix::operator + (const matrix & b)
{
int i,j;
matrix c(l,s);
for (i=0;i<l;i++)
	for (j=0;j<l;j++)
		c[i][j]=b[i][j]+(*this)[i][j];
return c;
};
 
matrix  matrix::operator-(const matrix & b)
{
int i,j;
matrix c(l,s);
for (i=0;i<l;i++)
	for (j=0;j<l;j++)
		c[i][j]=b[i][j]-(*this)[i][j];
return c;
};
 
void matrix::Out_put()
{
	matrix c(l,s);
for(int i=0;i<l;i++)
    {
    for(int j=0;j<l;j++) { cout<<""<<(c[i][j]);}
	cout<<endl;}        
};
 
void matrix::In_put()
{
	matrix a(l,s);
for(int i=0;i<l;i++)
    {
    for(int j=0;j<l;j++)
        {cin>>(a[i][j]);}}
};
 
int main()
{
	int f;
matrix m1(l,s), m2(l,s), m(l,s);
cout << "\nMatrix 1: \n";
m1.In_put();
cout << "\nMatrix 2: \n";
m2.In_put();
m=m1+m2;
cout << "\n Matrix 1 + Matrix 2 : \n";
m.Out_put();
cout << "\n";
m=m1-m2;
cout << "\n Matrix 1 - Matrix 2 : \n";
m.Out_put();
cout << "\n";
m=m1*m2;
cout << "\n Matrix 1 * Matrix 2 :\n";
m.Out_put();
cout << "\n";
cout<<"Enter f:";cin>>f;
m=m1*f;
cout << "\n Matrix 1 * f :\n";
m.Out_put();
m=m2*f;
cout << "\n Matrix 2 * f :\n";
m.Out_put();

return 0;
};
doter вне форума Ответить с цитированием
Старый 18.04.2011, 20:25   #2
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

определи конструктор
Код:
        public:
			matrix (int l,int s) {}
можете из него вызывать метод create, как видимо задумывалось
onewho вне форума Ответить с цитированием
Старый 18.04.2011, 20:28   #3
doter
Пользователь
 
Регистрация: 25.09.2010
Сообщений: 34
По умолчанию

я так и сделал , прога уже запустилась . Я ввожу две матрицы и после этого программа сворачивается . Видимо , что -то не так в методах . Если увидите ошибку , сообщите пожалуйста .
doter вне форума Ответить с цитированием
Старый 18.04.2011, 20:32   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Как правило пошаговый дебагинг (F10, F11 или F7, F8 обычно, в зависимости от компилятора) помогает найти такие ошибки.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 18.04.2011, 20:39   #5
doter
Пользователь
 
Регистрация: 25.09.2010
Сообщений: 34
По умолчанию

после так называемого дебагинга нет ни ошибок, ни предупреждений , но прога не хочет все равно работать так , как нужно. Но все равно спс за то , что уделили чуточку своего времени и внимания )
doter вне форума Ответить с цитированием
Старый 18.04.2011, 20:41   #6
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

а в конце getchar(); не пробывали?
onewho вне форума Ответить с цитированием
Старый 18.04.2011, 20:43   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
после так называемого дебагинга нет ни ошибок, ни предупреждений , но прога не хочет все равно работать так , как нужно.
Ну дык смысл его в том, чтобы увидеть на каком месте затык)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 18.04.2011, 20:48   #8
doter
Пользователь
 
Регистрация: 25.09.2010
Сообщений: 34
По умолчанию

Цитата:
а в конце getchar(); не пробывали?
в конце чего ? )
doter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс для работы с матрицами 2х2 doter Общие вопросы C/C++ 2 18.04.2011 19:38
Описать класс-родитель и класс-потомок. Delphi 7 Andrew_M Помощь студентам 0 15.01.2011 14:42
C#: операции с матрицами Sianessa Помощь студентам 12 13.05.2009 22:22
Задачи с матрицами blondinochka Паскаль, Turbo Pascal, PascalABC.NET 0 11.05.2009 11:36
Класс матриц, перегрузка операций с матрицами andros Помощь студентам 1 26.12.2008 19:49