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

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

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

класс с матрицами - C++

18.04.2011, 19:17. Просмотров 380. Ответов 7
Метки нет (Все метки)

всем привет. очень нужна ваша помощь. прогу написал , но выдает 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;
};
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2011, 19:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос класс с матрицами (C++):

Класс для работы с матрицами - C++
Неплохая библиотека :) . Люди, у кого есть нервы скачать весь сайт и в архиве прислать ко мне на мыло :) (Библиотека хорошая, а на качалку...

Класс для работы с матрицами - C++
Разработать класс обеспечивающий представление матрицы произвольного размера с возможностью изменения числа строки столбцов,вывода на экран...

Класс для работы с матрицами - C++
Разработать класс обеспечивающий представление матрицы произвольного размера с возможностью изменения числа строки столбцов,вывода на экран...

Класс для работы с матрицами 2х2 - C++
Нужна помощь. Задание звучит так : разработать класс для работы с матрицами 2х2 . Прога уже почти написана , код работает , но вот...

Создать класс для работы с матрицами - C++
Нужно создать класс для работы с матрицами и предусмотреть функции: -добавления(+); -умножения двух матриц(*); -транспонирования...

Создать динамический класс для работы с матрицами - C++
Доброго времени суток. Нужно создать динамический класс для работы с массивами. Вопрос как его создать? В книгах Дейтела и Лафоре...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
18.04.2011, 19:50 #2
а написать какие ошибки не судьба? или должны сами додуматься
0
dota
3 / 3 / 0
Регистрация: 20.09.2010
Сообщений: 100
18.04.2011, 19:58  [ТС] #3
matrix_2.obj : error LNK2001: unresolved external symbol "public: __thiscall matrix::matrix(int,int)" (??0matrix@@QAE@HH@Z)
Debug/matrix_2.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

matrix_2.exe - 2 error(s), 0 warning(s)
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
18.04.2011, 20:02 #4
ну и что вам непонятно в этой ошибке если вы сами писали программу?
перевожу: компилятор не видит у вас описание конструктора с параметрами, есть только объявление на 19ой строке вашего кода
C++
1
2
3
4
matrix::matrix (int l,int s)
{
// тут что-то делаем
}
1
dota
3 / 3 / 0
Регистрация: 20.09.2010
Сообщений: 100
18.04.2011, 20:12  [ТС] #5
я кое-что дописал и программа запустилась :
matrix (int l,int s){Create();};
выводит предупреждение : .\Debug\matrix_2.obj : warning LNK4042: object specified more than once; extras ignored


но после того , как я ввожу с клавиатуры 2 матрицы , программа сворачивается. что делать ?
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
18.04.2011, 20:17 #6
сделайте трассировку
0
dota
3 / 3 / 0
Регистрация: 20.09.2010
Сообщений: 100
18.04.2011, 20:21  [ТС] #7
а это как ? )
0
asics
Freelance
Эксперт С++
2847 / 1784 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
18.04.2011, 20:43 #8
dota, http://ru.wikipedia.org/wiki/%D0%A2%...BD%D0%B8%D0%B5)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2011, 20:43
Привет! Вот еще темы с ответами:

Класс для работы с матрицами - Что дает перегруженный оператор индексирования? - C++
Есть работающая программа, которая имеет: конструктор с параметрами, который заполняет матрицу псевдослучайными числами конструктор...

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...

Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами - C++
Здравствуйте! Никак не могу продумать структуру этой программы. Проходим наследование, но я все равно не знаю, как его здесь применить. Как...

Отдельно класс данных, класс формул и главный класс - C++
Здравствуйте! У меня есть три вопроса. Первый вопрос. Скажите пожалуйста! Правильный ли это подход к созданию приложений :...


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

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

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