Jump to content


Photo

Probleminha Com Classe De Matrizes


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 sodra

sodra

    12 Horas

  • Usuários
  • 174 posts
  • Sexo:Não informado

Posted 22/03/2008, 12:20

Ae galera estou resolvendo um exercício da faculdade no qual devo criar uma classe para matrizes

Porém ele está dando uns problemas que não faço idéia do pq.
Pelo que pude perceber, ele não está entendendo o tipo Matriz22 como um tipo de matriz e não consegue devolve-lo como retorno.Se Alguém puder me ajudar eu agradeço!

Erro: 14 C:\Documents and Settings\Gustavo Bodra\Meus documentos\facul\LTP I\Matriz\libMatriz.cpp conversion from `float (*)[2]' to non-scalar type `Matriz22' requested

libMatriz.h
class Matriz22{
	private:
		float matriz22[2][2];
	public:
		//construtor da classe
		Matriz22();
		//metodos get e set
		Matriz22 getMatriz22();

		void setMatriz22(Matriz22 matrizTemporaria);
		//Fim - metodos get e set

		//soma de matrizes
		Matriz22 somaMatriz(Matriz22 matrizSomada);

		//subtracao de matrizes
		Matriz22 subatraiMatriz(Matriz22 matrizSubtraida);

		//multiplicacao de matrizes
		Matriz22 multiplicaMatriz(Matriz22 matrizMultiplicada);

		//matriz transposta
		void transpoeMatriz();

		//determinante de matriz 2x2
		int determinanteMatriz();
};

libMatriz.cpp

#include "libMatriz.h"

//construtor da classe
Matriz22::Matriz22(){
	for (int i=0; i < 2; i++){
		for (int j=0; j < 2; j++){
			matriz22[i][j] = 0;
		}
	}
}

//metodos get e set
Matriz22 Matriz22::getMatriz22(){
	return matriz22;
}

void Matriz22::setMatriz22(Matriz22 matrizTemporaria){
	for (int i=0; i < 2; i++){
		for (int j=0; j < 2; j++){
			matriz22[i][j] = matrizTemporaria[i][j];
		}
	}
}
//Fim - metodos get e set

//soma de matrizes
Matriz22 Matriz22::somaMatriz(Matriz22 matrizSomada){
	Matriz22 auxiliar;
	Matriz22 matrizDaClasse = getMatriz22();

	for (int i=0; i < 2; i++){
		for (int j=0; j < 2; j++){
			auxiliar[i][j] = matrizDaClasse[i][j] + matrizSomada[i][j];
		}
	}

	return auxiliar;
}

//subtracao de matrizes
Matriz22 Matriz22::subatraiMatriz(Matriz22 matrizSubtraida){
	Matriz22 auxiliar;
	Matriz22 matrizDaClasse = getMatriz22();

	for (int i=0; i < 2; i++){
		for (int j=0; j < 2; j++){
			auxiliar[i][j] = matrizDaClasse[i][j] - matrizSubtraida[i][j];
		}
	}

	return auxiliar;
}

//multiplicacao de matrizes
Matriz22 Matriz22::multiplicaMatriz(Matriz22 matrizMultiplicada){
	Matriz22 auxiliar;
	Matriz22 matrizDaClasse = getMatriz22();

	auxiliar[0][0] = (matrizDaClasse[0][0] * matrizMultiplicada[0][0]) + (matrizDaClasse[0][1] * matrizMultiplicada[1][0]);
	auxiliar[0][1] = (matrizDaClasse[0][0] * matrizMultiplicada[0][1]) + (matrizDaClasse[0][1] * matrizMultiplicada[1][1]);
	auxiliar[1][0] = (matrizDaClasse[1][0] * matrizMultiplicada[0][0]) + (matrizDaClasse[1][1] * matrizMultiplicada[1][0]);
	auxiliar[1][1] = (matrizDaClasse[1][0] * matrizMultiplicada[0][1]) + (matrizDaClasse[1][1] * matrizMultiplicada[1][1]);


	return auxiliar;
}

//matriz transposta
void Matriz22::transpoeMatriz(){
	Matriz22 auxiliar;
	Matriz22 matrizDaClasse = getMatriz22();

	for (int i=0; i< 2; i++){
		for (int j=0; j < 2; j++){
			auxiliar[j][i] = matrizDaClasse[i][j];
		}
	}

	setMatriz22(auxiliar);
}

//determinante de matriz 2x2
int Matriz22::determinanteMatriz(){
	Matriz22 matrizDaClasse = getMatriz22();
	int determinante = 0;
	
	determinante = (matrizDaClasse[0][0] * matrizDaClasse[1][1]) - (matrizDaClasse[0][1]*matrizDaClasse[1][0]);

	return determinante;
}

Gustavo Bodra

"Muitos dizem skate na veia, mas poucos sabem, realmente, o que é skate nos pés"




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq