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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2011, 19:43   #1
Jugger
Пользователь
 
Регистрация: 30.01.2008
Сообщений: 99
По умолчанию Инициализация матрицы методом класса

Настрочил вот такой вот код, работает неправильно
Значит идея такая - в мэйне конструктор создает непроинициалированную матрицу 4 на 4 далее в следующей строке элемент 2 2 инициализируется и в следующей выводится
Но инициализация не фурычит, выводится мусор
Подскажите что не так и как сделать ?
Код:
#include "stdafx.h"

using namespace std;
#include "iostream"
#include "ctime"

class matrix{
public:
	matrix();
	matrix(int y){
		a=new double[(y-1)*(y-1)];
		n=y;
		m=n;
	}
	matrix(int r, int u){
		a=new double[(r-1)*(u-1)];
		
		n=r;
		m=u;
	}
	double val(int i,int j){
		return *a+(m*i+j)*sizeof(double);
	}
	void putx(int i,int j, double r){
		a[i,j]=r;
	}
	void random_matrix(){
		for(int i=0;i>n;i++)
			for(int j=0;j>m;j++){
				srand(time (0));
				putx(i,j,rand());
			}
	}


	
private:
    double * a;
	int n,m,e;

};

int main()
{
	matrix b(4);
	b.putx(2,2,700);
	cout << b.val(2,2);
	system("pause");
    

    return 0;
}

Последний раз редактировалось Jugger; 20.10.2011 в 19:56.
Jugger вне форума Ответить с цитированием
Старый 20.10.2011, 19:48   #2
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Код:
a=new double[(y-1)^2]
^ - исключающее побитовое ИЛИ, а не возведение в степень
http://ru.wikipedia.org/wiki/%D0%91%...0.98_.28XOR.29
http://www.cplusplus.com/reference/clibrary/cmath/pow/
Дальше не смотрел.
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 20.10.2011, 19:58   #3
Jugger
Пользователь
 
Регистрация: 30.01.2008
Сообщений: 99
По умолчанию

А, ясненько .. исправил
Спасибо

Инициализация все так же не работает
Jugger вне форума Ответить с цитированием
Старый 20.10.2011, 20:31   #4
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Код:
#include "stdafx.h"

#include "iostream"
#include "ctime"

using namespace std;

class matrix{
public:
	matrix() : a(0) {}; // Initialize a = NULL
	matrix(int y){
		a=new double[y*y];
		n=y;
		m=n;
	}
	matrix(int r, int u){
		a=new double[r*u]; // r lines and u columns
		
		n=r;
		m=u;
	}
	~matrix()
	{
		if(a)
			delete [] a;
	} // Free the memory
        // Copy constructor & operator = you need to write too.

	double val(int i,int j){
		return a[i*m + j];
	}
	void putx(int i,int j, double r){
		a[i*m + j]=r;
	}
	void random_matrix(){
		srand((unsigned)time(0)); // srand out of the cycle
		for(int i = 0; i < n; i++)
			for(int j = 0; j < m; j++)
				putx(i, j, rand());
	}


	
private:
    double * a;
	int n,m,e;

};

int main()
{
	matrix b(4);
	b.putx(2,2,700);
	cout << b.val(2,2);
	system("pause");
    

    return 0;
}
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 20.10.2011, 20:43   #5
Jugger
Пользователь
 
Регистрация: 30.01.2008
Сообщений: 99
По умолчанию

Спасибо
Jugger вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение матрицы методом союзной матрицы dofmat Помощь студентам 6 03.10.2011 15:01
Каким образом методом класса... FarmHend Помощь студентам 1 20.09.2011 07:03
с++ инициализация статических елементов класса p_alex Помощь студентам 5 25.10.2009 16:52
Проблема с методом класса Ivan_32 Общие вопросы C/C++ 4 27.03.2009 10:43