herança e matriz

1 resposta
J
Bom contruir 3 classes ordem5, testaOrdem5, e MostraDiag,: a classe ordem calcula os elementos da matriz, a soma da diagonal principal e secundaria, o minimo e o maximo, segue o codigo:
public class Ordem5{

	protected int [][]v;
	Ordem5(){
	  v=new int[5][5];
	}
	public void carrega(){
	  for(int i=0; i<5; i++)
		for(int j=0; j<5; j++)
		   v[i][j]= (int)(100 * Math.random());
	}
	public int getMax(){
	  int maximo = v[0][0];
	  for(int i=0; i<5; i++)
		for(int j=0; j<5; j++)
		   if(maximo<v[i][j])
		     maximo = v[i][j];
	  return maximo;
	}
	public int getMin(){
	  int maximo = v[0][0];
	  for(int i=0; i<v.length; i++)
		for(int j=0; j<5; j++)
		   if(maximo>v[i][j])
		     maximo = v[i][j];
	  return maximo;
	}
	public int somaDiaP(){
	  int sp = 0;
	  for(int i=0; i<v.length; i++){
		for(int j=0; j<v.length; j++)
		if(i==j)
		sp += v[i][j];
	  }
	  return sp;
	}
	public int somaDiaS(){
		int ss=0;
		int aux=4;
		for(int i=0;i<v.length;i++)
		{
			for(int j=0;j<v.length;j++){
				if(j==aux)
				{
					ss+=v[i][j];
					aux--;
				}
			}
		}
		return ss;
	}
	public int getValor(int i , int j){
	  int posicao;
	  posicao = v[i][j];
	  return posicao;
	}
	public int getTamanho(){
		return v.length;
	}
}

essa classe mostras as diagonais, ela herda todos os atributos da ordem5, segue o codigo:

public class MostraDIag extends Ordem5 {
	
	public void diaP(){
		  for(int i=0; i<v.length; i++){
			for(int j=0; j<v.length; j++)
			if(i==j)
			System.out.print(" "+getValor(i,j));
		   }
		}
		public void diaS(){
			int aux=4;
			for(int i=0;i<v.length;i++)
			{
				for(int j=0;j<v.length;j++){
					if(j==aux)
					{
						System.out.print(" "+getValor(i,j));
						aux--;
					}
				}
			}
		}
}
bom, qdo executo o a diagonal principal e secudaria saem diferentes do que é exibida na matriz, esse é o codigo da classe que executa:
public class TestaOrdem5{
	public static void main(String []args){
		Ordem5 obj1 = new Ordem5();
		MostraDIag obj= new MostraDIag();
		obj1.carrega();
		obj.carrega();
		System.out.println("Maximo:"+obj1.getMax());
		System.out.println("Minimo:"+obj1.getMin());
		for(int i=0; i<obj1.getTamanho(); i++){
		     for(int j=0; j<obj1.getTamanho(); j++)
			System.out.print(" " + obj1.getValor(i,j));
		System.out.println("\n");
		}
		System.out.println("Diagonal Principal: ");
		obj.diaP();
		System.out.println();
		System.out.println("Diagonal Secundaria:");
		obj.diaS();
		System.out.println();
		System.out.println("Soma Diagonal Principal: " + obj1.somaDiaP());
		System.out.println("Soma Diagonal Secundaria: " + obj1.somaDiaS());
		int somaPS = obj1.somaDiaP() + obj1.somaDiaS();
		System.out.println("Soma das Diagonais: " +somaPS);
	}
}

Como faço para que a diagonal pricipal que é recibida seja igual a da matriz calculada na clase ordem5?

desde ja agradeço, obrigado a todos

[color="red"]*Editado: lembre-se de usar BBCode nas suas mensagens no fórum. Jair Elton :joia:[/color]

1 Resposta

J

Agradeço a todos, consegui resolver o problema agora vlw

Criado 8 de maio de 2007
Ultima resposta 9 de mai. de 2007
Respostas 1
Participantes 1