• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Pure_Water

Problema sobre Burros e a sua descendecia/ascendencia

3 mensagens neste tópico

Boas tenho um trab de prog em k usando uma class, leio a informaçao contida num ficheiro (seguindo o padrão <Burro> <Pai> <Mãe>), e entao num ficheir com:

Remualdo Cantinflas Bembória

Cantinflas Genésio Gentrília

Genésio Motifílias Bantífica

Gentrília Antuérpio Genuflexília

Bembória Ruinaldo Motivacília

Ruinaldo Tutitótio Gertrídia

Motivacília Bentúrpico Esferícia

deverá aparecer no output:

Remualdo
  Cantinflas
		Genésio
			  Motifílias
			  Bantífica
		Gentrília
			  Antuérpio
			  Genuflexília
  Bembória
		Ruinaldo
			  Tutitótio
			  Gertrídia
		Motivacília
			  Bentúrpico
			  Esferícia

Para o fazer uso um Burro.java ( javadoc ) e uma classe pre-feita BibBurro.class (javadoc ).

O meu codigo e este:

public static void main(String[] args){
try{
	Burro burro = BibBurro.lerFicheiro("Remualdo");
	System.out.println(burro.getNome());
	imprimir(burro);
}
catch(FileNotFoundException e){
	System.out.println("Erro!");
}
catch(IOException e){
	System.out.println("Erro!");
}
}

private static String espacos = "	  ";

private static void imprimir(Burro b) {
if(b.getPai()!= null){
	System.out.println(espacos + b.getPai().getNome());
	espacos += "	  ";
		imprimir(b.getPai());
}
if(b.getMae()!= null){
	espacos = espacos.substring(6);
	System.out.println(espacos + b.getMae().getNome());
	imprimir(b.getMae());
}
}

E embora alguma parte do output esteja correcta, uma outra parte aparece desalinhada. Alguem sabe como resolver isto?

Tia,

Pure

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

deves imprimir o burro em questao logo. depois o pai e por ai a baixo enquanto houver pais e depois as maes (1º a mae do burro folha) mas a recursao trata-te disso.

o metodo deverá entao ser:

private static void imprimir(Burro b, String espaçosOffset){

        System.out.println(espaçosOffset + b.getNome);

        String novoEspacosOffset = espacosOffset + espacos;

        if(b.getPai()!= null){

            imprimir(b.getPai() +  novoEspacosOffset)

}

if(b.getMae()!= null){

    imprimir(b.getPai() +  novoEspacosOffset)

}

    }

e inicias a primeira vez com imprimir(burro,");

assim acho que devera funcionar

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dabubble, brigadão :D Ao inicio o teu codigo n funcionou a 100% mas com umas modificaçoes no meu, baseadas no teu ficou a funcionar as mil maravilhas.

brigadão serio  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora