Pure_Water Posted May 21, 2006 at 01:28 PM Report Share #28604 Posted May 21, 2006 at 01:28 PM 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óriaCantinflas 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 Link to comment Share on other sites More sharing options...
Dabubble Posted May 21, 2006 at 04:21 PM Report Share #28622 Posted May 21, 2006 at 04:21 PM 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 Link to comment Share on other sites More sharing options...
Pure_Water Posted May 21, 2006 at 05:29 PM Author Report Share #28639 Posted May 21, 2006 at 05:29 PM Dabubble, brigadão 😄 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 😄 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now