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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2011, 00:28   #1
doter
Пользователь
 
Регистрация: 25.09.2010
Сообщений: 34
Вопрос Классы и матрицы

Доброго времени суток. Нужна помощь. Задание звучит так : разработать класс для работы с матрицами 2х2 . Кинул весь код в архиве . Он работает , просто нужно еще реализовать нахождение определителя и возведение матрицы в степень . Помогите плиз
Вложения
Тип файла: zip class_matrix_2x2.zip (1.7 Кб, 10 просмотров)
doter вне форума Ответить с цитированием
Старый 30.04.2011, 15:06   #2
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Что за бред? определитель найти - это 3 арифметические операции. возвести матрицу в степень это 1 цикл... И ради этого качать архив?! код в студию!
mMAg вне форума Ответить с цитированием
Старый 01.05.2011, 13:07   #3
doter
Пользователь
 
Регистрация: 25.09.2010
Сообщений: 34
По умолчанию

Код:
#ifndef CLASS_DEFINITION_H
#define CLASS_DEFINITION_H

#include <iostream.h>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>


#define MATRIX_SIZE_X 2
#define MATRIX_SIZE_Y 2

class matrix {   // класс матрица
    private:
    int *mData;
    int  mSizeY;
    int  mSizeX;
    int  refCount;
    public:
	matrix (int sx,int sy)
    {
        int i=0;
        mSizeY   = sy;
        mSizeX   = sx;
        refCount = 0;
        mData    = new int[sx*sy];
        while(i<(sx*sy)){mData[i++]=0;};
    };
    ~matrix()  {if((refCount--)<1){delete[] mData;}}
    int    operator[](int i){return mData[i];} 
    matrix operator=(matrix &b);
    matrix operator+(matrix &b);
    matrix operator-(matrix &b);
    matrix operator*(matrix &b);
    matrix operator*(int f);        
    void    In_put();
    void    Out_put();
};
 
matrix matrix::operator = (matrix &b)
{
    int i=0; refCount++;
    while(i<(mSizeX*mSizeY)){mData[i]=b[i];i++;}
    return *this;
};

matrix matrix::operator * (matrix &b)
{
    int i=0; refCount++;
    while(i<(mSizeX*mSizeY)){mData[i++]*=b[i];i++;}
    return *this;
};

matrix matrix::operator * (int f)
{
    int i=0; refCount++;
    while(i<(mSizeX*mSizeY)){mData[i++]*=f;}
    return *this;
};

 
matrix matrix::operator + (matrix &b)
{
    int i=0; refCount++;
    while(i<(mSizeX*mSizeY)){mData[i]+=b[i];i++;}
    return *this;
};
 
matrix matrix::operator - (matrix &b)
{
    int i=0; refCount++;
    while(i<(mSizeX*mSizeY)){mData[i]-=b[i];i++;}
    return *this;
};
 
void matrix::Out_put()
{
    for(int i=0;i<mSizeX;i++)
    {
        for(int j=0;j<mSizeY;j++) 
        {printf("[%d,%d]=%u ",i,j,mData[(i*mSizeY)+j]);}
    	cout<<endl;
    }
    cout<<endl;
};
 
void matrix::In_put()
{
 for(int i=0;i<mSizeX;i++)
 {
    for(int j=0;j<mSizeY;j++){cin>>(mData[(i*mSizeX)+j]);}
 }
};

#endif
doter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ф-ия, определяющая сумму строк матрицы, если на главной диагонали матрицы имеется отрицательный эл-т. Volk_xD Помощь студентам 6 05.01.2011 13:39
Создание символьной матрицы, классы Crudelis Общие вопросы C/C++ 5 18.06.2010 19:15
Матрицы:функция изменения порядка столбцов матрицы Fajyz Помощь студентам 0 13.01.2010 09:40
На главную диагональ матрицы поместить наибольшие элементы этой матрицы mivel Помощь студентам 2 23.12.2009 21:19