Ajudar Urgente

26 respostas
M

Ola Pessoal

Meu nome é Miguel e estou pedindo sua ajuda em uma informação a respeito de linguagem Java, o problema é que meu atual professor, apesar dele ter sido formado na UFRN, ele não consegue me convencer de que nasceu para ensinar, já que na minha opinião isso é uma arte e você também tem que gostar. Pois então!!

Eu não estou conseguindo aprender nada com nada, ele é muito confuso, reconheço que ele sabe muito em java, só que ele só sabe pra ele. Dos 20 alunos que temos na sala, apenas eu e mais 5 nos matriculamos na disciplina achando que ele iria se superar, apesar de já termos pago a cadeira de sistemas operacionais no ano passado com ele que também não agradou a ninguém.

O que preciso saber é se o você Poderia me ajudar com dois programas que ele passou como exercício e quer que a gente adivinhe como fazer se nem aulas praticas estamos tendo direito. Se não puder, me indique alguém que possa me ajudar. Nunca tive ânsia em ser programador, meu objetivo no curso é outro, mas acredite. A pouca vontade que tenho em aprender programação apenas a titulo de conhecimento está indo por água abaixo porque uma pessoa acha que as coisas sempre tem que ser do jeito que ele quer e não quer ouvir opinião de ninguém. Falo que a metodologia de ensino dele é arcaica, sem falar que ele não leva o menor jeito para ensinar mesmo.

Desculpe meu desabafo, sei que o você não tem nada com isso. Gostaria apenas de saber se pode me ajudar.

Esse são os programas que ele quer? Juro que não sei nem por onde começar, e não estaria me sujeitando uma situação dessas se realmente não tivesse precisando aprender um pouco.

1- Escreva um aplicativo que localiza o menor e o maior de vários inteiros (a quantidade deverá ser informada pelo usuário). Assuma o primeiro valor lido especifica o numero de valores a serem digitados pelo usuário.

2- Escreva um aplicativo que lê um numero consistindo em cinco dígitos pelo usuário, separe o numero em seus dígitos individualmente e imprima os dígitos separados uns dos outros por três espaços cada. Por exemplo: Se um usuário digitar o numero 42339, o programa deverá imprimir: 4 2 3 3 9.

Agradeço a atenção dispensada.

Pode mandar as respostas para [email removido]

26 Respostas

eltonk

bom… os 2 problemas que vc apresentou são simples de resolver… mas é até anti-ético eu ti passar eles prontos… mas posso te indicar o caminho das pedras =)

Primeiro, para os 2 casos, pegue um simples hello word ae na internet e veja como funciona a estrutura java… bem básico mesmo…

Ae em cima dela, comece a modificar e fazer o que vc quer por exemplo, no seu primeiro problema, sugiro utilizar os componentes do JOptionPane para fazer a leitura e exibição dos teus dados…
Faça a sua primeira leitura (numero de dados a serem digitados) ser salva em uma variavel separada por exemplo:

int nDados = Integer.parseInt(JOptionPane.showInputDialog(null,"Qntos dados deseja digitar?"));

Depois crie uma estrutura de repetição que irá repetir n vezes sempre fazendo a leitura de um novo número a cada looping. Salve esses números em uma array. IMPORTANTE: A classe Integer fornece o método parseInt() que traduz um string para int… como no exemplo anterior.

Para verificar qual numero digitado é maior e menor, faca algo simples, declare 2 variaveis inteiras de valor inicial 0, uma para guardar o maior numero e outra para guardar o menor… e a cada looping vá comparando se o número digitado é maior que o valor da variavel (para pegar o maior numero), caso afirmativo salve ela nesta mesma variavel e o mesmo para a do menor numero, mas testando se ela é menor que o valor da variavel.

No segundo caso, utilize o método subString para separar os números…

Acho que te confundi mais do que ajudei ehehhe
mas se tiver dúvidas, poste as que estamos ae =)

Abraços,

T

Bom… penso igual ao eltoken… e axo errado dizer tudo… o eltoken já disse como fazer pra pegar dados…

ai vc deve fazer um for pra conseguir os dados em 1 loop…

for (int i = 0; i < 20; i++) { //codigo fica aki }

isso faz com que ele execute 20 vezes o interior do loop… ai vc mude pro seu caso…

outra coisa é vc usar a class Math … que tem variaveis entro os quais está o método
max e o método min
esses métodos são estaticos… o q quer dizer q vc pode usalos sem criar um objeto Math… use ele assim… Math.max e Math.min…
bom… dentro do parentese ponha os argumentos… ele vai te retornar o menor dos números… ou o maior… a depender de qual vc usar…

vc pode criar uma variavel fora… e ficar em um loop fazer… que a variavel minimo é igual ao menor valor entra a antiga variavel minimo e o novo valor…

ai no fim… imprima o minimo e o maximo…

abraços

M

show de bola eltoken,

eu cheguei a fazer isso, aqui…

vc acha que dá pra melhorar? tentar incrementar mais!!

public class Verifica{
  
  int menor,maior;
  
  public int verificaMaior(int numvetor){
         if(numvetor > maior){
            maior = numvetor;
         }   
         return(maior);
  }

  public int verificaMenor(int numvetor){
        if (numvetor < menor){
            menor = numvetor;
        }
        return(menor);
        
  } 
}

---------

import javax.swing.JOptionPane;

public class MaiorMenor{
    public static void main(String args[]){
    
      String numero;
      int c,quantidade;  
       
      Verifica obj = new Verifica();
      
      numero = JOptionPane.showInputDialog("Entre com a quantidade de numeros a serem comparados: ");
      quantidade = Integer.parseInt(numero);
      
      for(int i = 0; i < quantidade; i++){
         numero = JOptionPane.showInputDialog("Digite o numero da posiçao [ " + (i+1) + " ] :");
         c = Integer.parseInt(numero);
         obj.verificaMaior(c);
         obj.verificaMenor(c);
      }
      
    
      JOptionPane.showMessageDialog(null,"O menor valor digitado foi " + obj.menor +
                                         "\nO maior valor digitado foi " + obj.maior,   
                                         "Classificaçao",JOptionPane.PLAIN_MESSAGE);
      System.exit(0);
    
    } 
}

[color=“darkblue”]Editado por AnotherX (use sempre o BBCode)[/color]

“eltonk”:
bom… os 2 problemas que vc apresentou são simples de resolver… mas é até anti-ético eu ti passar eles prontos… mas posso te indicar o caminho das pedras =)

Primeiro, para os 2 casos, pegue um simples hello word ae na internet e veja como funciona a estrutura java… bem básico mesmo…

Ae em cima dela, comece a modificar e fazer o que vc quer por exemplo, no seu primeiro problema, sugiro utilizar os componentes do JOptionPane para fazer a leitura e exibição dos teus dados…
Faça a sua primeira leitura (numero de dados a serem digitados) ser salva em uma variavel separada por exemplo:

int nDados = Integer.parseInt(JOptionPane.showInputDialog(null,"Qntos dados deseja digitar?"));

Depois crie uma estrutura de repetição que irá repetir n vezes sempre fazendo a leitura de um novo número a cada looping. Salve esses números em uma array. IMPORTANTE: A classe Integer fornece o método parseInt() que traduz um string para int… como no exemplo anterior.

Para verificar qual numero digitado é maior e menor, faca algo simples, declare 2 variaveis inteiras de valor inicial 0, uma para guardar o maior numero e outra para guardar o menor… e a cada looping vá comparando se o número digitado é maior que o valor da variavel (para pegar o maior numero), caso afirmativo salve ela nesta mesma variavel e o mesmo para a do menor numero, mas testando se ela é menor que o valor da variavel.

No segundo caso, utilize o método subString para separar os números…

Acho que te confundi mais do que ajudei ehehhe
mas se tiver dúvidas, poste as que estamos ae =)

Abraços,

M

ANotherX,

Dá uma sacada nesse aí e veja se dá pra melhorar mais ainda, dá uma exxugada.

public class DesmanchaNumero{
    
    int dez_milhar,milhar,centenas,dezenas,unidades;
    String resultado;
    
    public String desmancha(int numero){
     //calcular dezenas de milhar
        dez_milhar = (numero / 10000);
        numero = (numero % 10000);
     //calcular milhar
        milhar = (numero / 1000);
        numero = (numero % 1000);
     //calcular centenas
        centenas = (numero / 100);
        numero = (numero % 100);
     //calcular dezenas 
        dezenas = (numero / 10);
        numero = (numero % 10);
     //calcular unidades
        unidades = numero;
       
        resultado = dez_milhar + "   " + milhar + "   " + centenas + "   " + dezenas + "   " + unidades; 
        return(resultado);  
    }

}

---------

import javax.swing.JOptionPane;

public class Aplicativo{
    public static void main(String args[]){
     
        String valor;
        int numero;
        
        DesmanchaNumero obj = new DesmanchaNumero();
     
        valor = JOptionPane.showInputDialog("Digite um valor com até 5 digitos");
        numero = Integer.parseInt(valor);
        
        JOptionPane.showMessageDialog(null,"A saida é a seguinte:\n    " + 
                                     obj.desmancha(numero),"Separando Caracteres",
                                     JOptionPane.PLAIN_MESSAGE);        
        System.exit(0);
   }
    
}

[color=“darkblue”]Editado por AnotherX (use sempre o BBCode)[/color]

“AnotherX”:
Bom… penso igual ao eltoken… e axo errado dizer tudo… o eltoken já disse como fazer pra pegar dados…

ai vc deve fazer um for pra conseguir os dados em 1 loop…

for (int i = 0; i < 20; i++) { //codigo fica aki }

isso faz com que ele execute 20 vezes o interior do loop… ai vc mude pro seu caso…

outra coisa é vc usar a class Math … que tem variaveis entro os quais está o método
max e o método min
esses métodos são estaticos… o q quer dizer q vc pode usalos sem criar um objeto Math… use ele assim… Math.max e Math.min…
bom… dentro do parentese ponha os argumentos… ele vai te retornar o menor dos números… ou o maior… a depender de qual vc usar…

vc pode criar uma variavel fora… e ficar em um loop fazer… que a variavel minimo é igual ao menor valor entra a antiga variavel minimo e o novo valor…

ai no fim… imprima o minimo e o maximo…

abraços

M

Eltoken AnotherX

olha só esse e vejam de dá pra melhorar alguma coisa.

show de bola eltoken,

eu cheguei a fazer isso, aqui…

vc acha que dá pra melhorar? tentar incrementar mais!!

public class Verifica{
  
  int menor,maior;
  
  public int verificaMaior(int numvetor){
         if(numvetor > maior){
            maior = numvetor;
         }   
         return(maior);
  }

  public int verificaMenor(int numvetor){
        if (numvetor < menor){
            menor = numvetor;
        }
        return(menor);
        
  } 
}

---------

import javax.swing.JOptionPane;

public class MaiorMenor{
    public static void main(String args[]){
    
      String numero;
      int c,quantidade;  
       
      Verifica obj = new Verifica();
      
      numero = JOptionPane.showInputDialog("Entre com a quantidade de numeros a serem comparados: ");
      quantidade = Integer.parseInt(numero);
      
      for(int i = 0; i < quantidade; i++){
         numero = JOptionPane.showInputDialog("Digite o numero da posiçao [ " + (i+1) + " ] :");
         c = Integer.parseInt(numero);
         obj.verificaMaior(c);
         obj.verificaMenor(c);
      }
      
    
      JOptionPane.showMessageDialog(null,"O menor valor digitado foi " + obj.menor +
                                         "\nO maior valor digitado foi " + obj.maior,   
                                         "Classificaçao",JOptionPane.PLAIN_MESSAGE);
      System.exit(0);
    
    } 
}

[color=“darkblue”]Editado por AnotherX (use sempre o BBCode)[/color]

M

Olhem o segundo tambem e façam alteraçoes se quiserem.. afinal voces sabem bem mais..

Dá uma sacada nesse aí e veja se dá pra melhorar mais ainda, dá uma exxugada.
public class DesmanchaNumero{ 

int dez_milhar,milhar,centenas,dezenas,unidades; 
String resultado; 

public String desmancha(int numero){ 
//calcular dezenas de milhar 
dez_milhar = (numero / 10000); 
numero = (numero % 10000); 
//calcular milhar 
milhar = (numero / 1000); 
numero = (numero % 1000); 
//calcular centenas 
centenas = (numero / 100); 
numero = (numero % 100); 
//calcular dezenas 
dezenas = (numero / 10); 
numero = (numero % 10); 
//calcular unidades 
unidades = numero; 

resultado = dez_milhar + " " + milhar + " " + centenas + " " + dezenas + " " + unidades; 
return(resultado); 
} 

} 

--------- 

import javax.swing.JOptionPane; 

public class Aplicativo{ 
public static void main(String args[]){ 

String valor; 
int numero; 

DesmanchaNumero obj = new DesmanchaNumero(); 

valor = JOptionPane.showInputDialog("Digite um valor com até 5 digitos"); 
numero = Integer.parseInt(valor); 

JOptionPane.showMessageDialog(null,"A saida é a seguinte:\n " + 
obj.desmancha(numero),"Separando Caracteres", 
JOptionPane.PLAIN_MESSAGE); 
System.exit(0); 
} 

}
[color="darkblue"]Editado por AnotherX (use sempre o BBCode)[/color]
T

Bom… neste código o que posso dizer é o seguinte…
este método…

public int verificaMaior(int numvetor)

não necessita de retornar um inteiro… pois vc não está fazendo uso do retorno dele… e ele na verdade não verifica … ele guarda… axo que ficaria melhor assim

public void guardaMaior(int numvetor)

o void indicia que nao há retorno …

outra coisa… é sempre mais elegante em um objeto… deixar as suas variveis privadas… ou seja…

private int menor,maior;

e o método usado para resgatar os valores destas variaveis usualmente é assim…

public int getMaior() { return maior; }
faça o mesmo para o valor menor…

isso garante que ninguem possa fazer obj.maior = 0;

pq a variavel maior estará privada… e só será acessada de dentro do objeto… e a unica forma de modificar os valores é através de metodos…

bom … a outra pergunta é se vc testou o programa… e c ele não da erro??

pq vc não está iniciando as variaveis menor, e maior com valor algum =/

ai eu axava que iria ocorrer um erro quando vc fosse compara-las…
mas se não tem ero entaum ok…

boa sorte ai no seu trabalho

“MigMax”:
Eltoken AnotherX

olha só esse e vejam de dá pra melhorar alguma coisa.

show de bola eltoken,

eu cheguei a fazer isso, aqui…

vc acha que dá pra melhorar? tentar incrementar mais!!

public class Verifica{
  
  int menor,maior;
  
  public int verificaMaior(int numvetor){
         if(numvetor > maior){
            maior = numvetor;
         }   
         return(maior);
  }

  public int verificaMenor(int numvetor){
        if (numvetor < menor){
            menor = numvetor;
        }
        return(menor);
        
  } 
}

---------

import javax.swing.JOptionPane;

public class MaiorMenor{
    public static void main(String args[]){
    
      String numero;
      int c,quantidade;  
       
      Verifica obj = new Verifica();
      
      numero = JOptionPane.showInputDialog("Entre com a quantidade de numeros a serem comparados: ");
      quantidade = Integer.parseInt(numero);
      
      for(int i = 0; i < quantidade; i++){
         numero = JOptionPane.showInputDialog("Digite o numero da posiçao [ " + (i+1) + " ] :");
         c = Integer.parseInt(numero);
         obj.verificaMaior(c);
         obj.verificaMenor(c);
      }
      
    
      JOptionPane.showMessageDialog(null,"O menor valor digitado foi " + obj.menor +
                                         "\nO maior valor digitado foi " + obj.maior,   
                                         "Classificaçao",JOptionPane.PLAIN_MESSAGE);
      System.exit(0);
    
    } 
}

[color=“darkblue”]Editado por AnotherX (use sempre o BBCode)[/color]

T

bom... neste segunda caso aki... o que posso dizer é q tem um maneira bem mais facil....

q é manipulando String... ao envez de manipular número...

primeiro passo seria pegar a string....

String entrada = JOptionPa...
//segundo passo seria tirar os espaços desnecessarios da string
entrada = entrada.trim();

//terceiro passo seria criar uma nova string pra abrigar os valores separados
valorSeparado = "";

//quarto passo seria com um for... percorrer toda a 1º string e ir montado a nova....
for (int i = 0; i < entrada.length() ; i++)
   //ultimo passo montar a nova string
   valorSeparado = valorSeparado + String.valueOf(entrada.charAt(i)) + "   ";
}

axo que acabei digitando o código todo... mais ia ficar dificil de explicar sem digitar.... é q deste geito vc vai pegando carcter por caracter da string... e vai montando um nova... axo melhor assim... mas cada um soluciona do geito que lhe convem =]

abraços...

do seu geito ao menos vc ta garantido que o valor é um número...

no geito que eu falei... teria que adcionar um teste pra verificar c a entrada é um número

"MigMax":
Olhem o segundo tambem e façam alteraçoes se quiserem.. afinal voces sabem bem mais.. Dá uma sacada nesse aí e veja se dá pra melhorar mais ainda, dá uma exxugada.
public class DesmanchaNumero{ 

int dez_milhar,milhar,centenas,dezenas,unidades; 
String resultado; 

public String desmancha(int numero){ 
//calcular dezenas de milhar 
dez_milhar = (numero / 10000); 
numero = (numero % 10000); 
//calcular milhar 
milhar = (numero / 1000); 
numero = (numero % 1000); 
//calcular centenas 
centenas = (numero / 100); 
numero = (numero % 100); 
//calcular dezenas 
dezenas = (numero / 10); 
numero = (numero % 10); 
//calcular unidades 
unidades = numero; 

resultado = dez_milhar + " " + milhar + " " + centenas + " " + dezenas + " " + unidades; 
return(resultado); 
} 

} 

--------- 

import javax.swing.JOptionPane; 

public class Aplicativo{ 
public static void main(String args[]){ 

String valor; 
int numero; 

DesmanchaNumero obj = new DesmanchaNumero(); 

valor = JOptionPane.showInputDialog("Digite um valor com até 5 digitos"); 
numero = Integer.parseInt(valor); 

JOptionPane.showMessageDialog(null,"A saida é a seguinte:\n " + 
obj.desmancha(numero),"Separando Caracteres", 
JOptionPane.PLAIN_MESSAGE); 
System.exit(0); 
} 

}
[color="darkblue"]Editado por AnotherX (use sempre o BBCode)[/color]
M

anotherX,

Os dois programas rodaram, claro que suas observaçoes foram valiosissimas a respeito de entradas dos inteiros mas deu um erro e nao consigo sabe consertar, dá uma olhada e veja se consegue entender pq dá esse erro " cannot resolve symbol. variable guardaMenor". na seguinte linha.

OptionPane.showMessageDialog(null,"O menor valor digitado foi " + obj.guardaMenor +
                                         "\nO maior valor digitado foi " + obj.guardaMaior,   
                                         "Classificaçao",JOptionPane.PLAIN_MESSAGE);

public class Guarda{
  
int menor,maior;
  
  public void guardaMaior(int numvetor){
         if(numvetor > maior){
            maior = numvetor;
         }   
       }

  public void guardaMenor(int numvetor){
        if (numvetor < menor){
            menor = numvetor;
        }
    }
  
  public int getMaior() {
      return maior;
  }
  public int getMenor() {
      return menor;
}
}
----------

import javax.swing.JOptionPane;

public class MaiorMenor{
    public static void main(String args[]){
    
      String numero;
      int c,quantidade;  
       
      Guarda obj = new Guarda();
      
      numero = JOptionPane.showInputDialog("Entre com a quantidade de numeros a serem comparados: ");
      quantidade = Integer.parseInt(numero);
      
      for(int i = 0; i < quantidade; i++){
         numero = JOptionPane.showInputDialog("Digite o numero da posiçao [ " + (i+1) + " ] :");
         c = Integer.parseInt(numero);
         obj.guardaMaior(c);
         obj.guardaMenor(c);

      }
      
    
      JOptionPane.showMessageDialog(null,"O menor valor digitado foi " + obj.guardaMenor +
                                         "\nO maior valor digitado foi " + obj.guardaMaior,   
                                         "Classificaçao",JOptionPane.PLAIN_MESSAGE);
      System.exit(0);
    
    } 
}
T

Bom… na hora de resgatar o valor… vc teria que usar o méotdo get

seria algo como…

JOptionPane.showMessageDialog(null,"O menor valor digitado foi " + obj.guardaMenor + "\nO maior valor digitado foi " + obj.getMaior(), "Classificaçao",JOptionPane.PLAIN_MESSAGE);

vc naum podia usar obj.guardarMaior pq isto não era uma propriedade…

e note q obj.getMaior() … volta exatamente o valor maior dentro do objeto…

faço o mesmo pra o valor menor

M

Beleza Tomaz,

Agora vc sabe me responder pq o menor valor só retorna zero?

T

sei!! =]

pq no trecho do seu código onde vc faz…

private int maior,menor;

isto é o mesmo que escrever

private int maior = 0; private int menor = 0;

sendo assim seu menor valor sempre será 0…

vc teria que pegar o menor valor possivel e por em maior…

e pegar o maior valor possivel e por em menor…

bom não lembro qual o valor de cada um pra um inteiro em java

… mas se vc fizer o seguinte ja da um geito

private int maior = -999999999; private int menor = 999999999;

ai esses valores serão trocados no primeiro teste

“MigMax”:
Beleza Tomaz,

Agora vc sabe me responder pq o menor valor só retorna zero?

M

Cara !!!

Vc é incrivel!!! parabens!1 deu certo…

Muito Obrigado mesmo irmao.

Miguel

T

Estamos aqui pra isso…

pra guiar as pessoas por caminhos que ja percorremos… e pra ser guiados por caminhos que ainda vamos percorrer =]

bom saber q vc conseguiu… agora lembre-se… c o cara digitar apenas valores maiores que… 999.999.999 o minimo sempre será este…

e se o cara digitar sempre valores menores que -999.999.999 o maximo sempre será este…

abraços mermão!!

boa sorte

Att, Tomaz Lavieri

M

Tomaz,

Só pra sua informaçao, eu nao posso declarar como private os int maior e menor, senao eu nao consigo ler no aplicativo seguinte… tem alguma ideia de como posso declarar como private e ler em outra classe. se entendi bem até agora o conceito de herança, nao acho que isso seja possivell. mas quero ouvir a voz da experiencia.

brigadu.

Miguel

T

vc declara como private… quando a segurança é necessaria…

veja seu caso… se alguem xega e faz…

obj.menor = 12;

isso é errado…

vc tem q fazer… obj.guardarMenor(12);

pra ele saber c este valor é menor do que está la dentro…

entaum vc declara ele private…

ai dentro da classe… vc fez um método

public int getMenor() … quer retorna o valor menor… mas só retorna o valor…

apesar de vc conseguir saber qual é o valor… vc não pode altera-lo… de fora da classe…

c vc pretende extender a classe… e usar de alguma forma esse valor… vc declara ele protected… ai as subclasses vaum poder modifica-los

Conseguiu entender?

M

entendi sim.

valeu.

Miguel

R
import  javax.swing.JOptionPane;
public class t{
	public static void main(String args[]){
		String a="",b="";
		int i=0,r=0,menor=0,maior=0;
		a=JOptionPane.showInputDialog(null,"Digite a quantidade de números");
		i=Integer.parseInt(a);

		b=JOptionPane.showInputDialog(null,"Digite o 1º número");
		 r=Integer.parseInt(b);
		 if(i==1){
		 	JOptionPane.showMessageDialog(null,"Maior ="+r+
		 	"\nMenor= "+r,"Resultado",JOptionPane.PLAIN_MESSAGE);
		 	System.exit(0);}
		 	 		 	
		maior=r;
		menor=r;
		r=0;
		for(int e=2;e<=i;e++){
			 a=JOptionPane.showInputDialog(null,"Digite o "+e+"ºnúmero");
			 r=Integer.parseInt(a);
			 if(r>maior)maior=r;
			 else if(r<menor)menor=r;
			 r=0;
			 a="";
}
JOptionPane.showMessageDialog(null,"Maior ="+maior+
		 	"\nMenor= "+menor,"Resultado",JOptionPane.PLAIN_MESSAGE)  ;
		 	System.exit(0);
		 }
		
      }

[color=“green”]** Editado para adicionar o bbcode - By eltonk[/color]

R

O código que lhe entreguei foi testado no JCreator e due certo,preste atenção nos parênteses, chaves e Ponto-e-vírgula(:wink: para ver se nao esquece de digitar.
Um abraço

F

para saber qual o maior se usa Math.max(a,b);
e para saber o menor usa MAth.min(a,b);

isto vai mais rapido[/quote]

M

Renan,

Seu codigo sem duvida é mais eficiente do que a dica do Tomaz, nao que eu esteje reclamando, alias ele foi quem até agora mais me ajudou e o lance Math.max e Math.min que o fabio falou tambem é interessante, mas o que me chamou atençao no seu codigo é que vc fez tudo em uma unica classe, vc acha que consegue fazer esse tambem em um unica classe?

[code]

public class DesmanchaNumero{

int dez_milhar,milhar,centenas,dezenas,unidades;
String resultado;

public String desmancha(int numero){
//calcular dezenas de milhar
dez_milhar = (numero / 10000);
numero = (numero % 10000);
//calcular milhar
milhar = (numero / 1000);
numero = (numero % 1000);
//calcular centenas
centenas = (numero / 100);
numero = (numero % 100);
//calcular dezenas
dezenas = (numero / 10);
numero = (numero % 10);
//calcular unidades
unidades = numero;

resultado = dez_milhar + " " + milhar + " " + centenas + " " + dezenas + " " + unidades;
return(resultado);
}

}

---------

import javax.swing.JOptionPane;

public class Aplicativo{
public static void main(String args[]){

String valor;
int numero;

DesmanchaNumero obj = new DesmanchaNumero();

valor = JOptionPane.showInputDialog("Digite um valor com até 5 digitos");
numero = Integer.parseInt(valor);

JOptionPane.showMessageDialog(null,"A saida é a seguinte:\n " +
obj.desmancha(numero),"Separando Caracteres",
JOptionPane.PLAIN_MESSAGE);
System.exit(0);
}

}

[\code]

T

“MigMax”:
Renan,

Seu codigo sem duvida é mais eficiente do que a dica do Tomaz, nao que eu esteje reclamando, alias ele foi quem até agora mais me ajudou e o lance Math.max e Math.min que o fabio falou tambem é interessante, mas o que me chamou atençao no seu codigo é que vc fez tudo em uma unica classe…

Apenas comentando… tanto o dele quanto o seu estão em uma unica classe…

a diferença é q o dele está tudo dentro do método main… e o seu não…

posso te assegurar que fazer em varios métodos é a melhor maneira…

se seu método esta passando de 1 página… provavelmente há algo errado no seu modelo =]…

Quanto aos método Math.max e Math.min … meu 1º post… eu te endiquei isso… ta la no comesso =]… mas fica meio ruim de acompanhar mesmo… vlw ai fabiocaj que indicou isto ai tb =]…

bom a intenção era vc ir fazendo o programa… e vc o fez… isso é otimo…

e o bom e vc ir compreendendo …

o uso de vario método é melhor pq sua classe fica reusavel… imagine assim… c vc um dia… em algum canto… precisar fazer varios testes… de maior ou menor… como c vai fazer???

só pegar sua classe que está pronta e usar =] … mas com essa classe que o RenanCCP mandou naum da pra usar… pq nela esta tudo dentro do método main… =] … tendeu??

mesmo assim… no começo é tudo confuso…

e aintenção de java é vc ir quebrando seu código em pequenas sub-rotinas…
pq ai fica facil de reutilizar o código…

abraços… e qualquer coisa… estou as ordem!

Tomaz Lavieri

eltonk

MigMax, vc está no caminho certo :blackp:
Não tem muito o que comentar não… vc pegou o jeito da coisa rapidinho :smiley:

Abraços,

M

agradeço o elogio Eltonk, mas ainda tenho uma longa estrada pra percorrer nesse universo infinito chamado java.

Quando chegar no nivel de vcs, e se chegar, vou me dar por satisfeito.

Miguel

M

q satisfeito oq cara, aehheahae, qnd chegar ao meu nivel (se é q ja não ta acima do meu heahe), tu vai querer saber mais e mais! 8)

M

Bom caro amigo Mateus,

a unica coisa que te prometo é que vou me esforçar para não decepciona-los.

abraços.

MigMax

Criado 21 de março de 2004
Ultima resposta 26 de mar. de 2004
Respostas 26
Participantes 6