Duvida de logica

21 respostas
dioni_deivid_dors

package exeroito;

import javax.swing.JOptionPane;

/**
*
* @author Dioni Deivid
*/
public class ExerOito {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

int numero; //queria que ele lesse um valor inteiro, e mostre o fatorial do valor lido.
// Exemplo: fatorial de 5 = 5 x 4 x 3 x 2 x 1 = 120
int novonu;
int numeme=0;
String aux;





aux= JOptionPane.showInputDialog("informe um valor ");
numero=Integer.parseInt(aux);



for (int a=1;a <= numero;a++){

novonu = numero-1;
numeme += novonu*numero;
numeme = novonu;



JOptionPane.showMessageDialog(null,numeme );


}






}
}
[code]

21 Respostas

lucas_guj

Você não colocou o código entre as tags code. Só vi a tag code lá no final. Vê se é isso que você quer:

package exeroito;

import javax.swing.JOptionPane;

/**
*
* @author Dioni Deivid
*/
public class ExerOito {

	/**
	* @param args the command line arguments
	*/
	public static void main(String[] args) {		
		String numStr = JOptionPane.showInputDialog("Informe um valor "); // armazena o número em String
		int numero = Integer.parseInt(numStr); //armazena o número inteiro convertido da String numStr
		int resultado = numero; // armazena o resultado do fatorial
		for (int i = 1; numero &gt; i; numero-- ) {
			resultado *= numero - 1;
		}
		
		JOptionPane.showMessageDialog( null, resultado );
	}
}

Como é um aplicativo pequeno economizei linha de código nas declarações de variáveis. Se não entendeu, pergunta ai que eu respondo.

dioni_deivid_dors

entendi sim colega ,

mas isso aki numero-- faz o que ?

lucas_guj

dioni deivid dors:
entendi sim colega ,

mas isso aki numero-- faz o que ?

Assim como você fez no seu código: a++

Eu fiz no meu: numero–

Que significa Subtraia 1 UNIDADE da variavel numero

Entendeu?

dioni_deivid_dors

entendi , a cada laço ele diminui 1 no caso

lucas_guj

Correto. Até ele ser 2, porque se ele for 1, ele vai diminuir 1 -1 e vai dar 0 e o resultado sempre vai ser 0. Se seu tópico foi resolvido coloque a [RESOLVIDO] no começo ou no final do seu tópico, editando sua mensagem. E quando for postar um código, você tem que apertar o botão Code uma vez para abrir a tag e depois que postar o código tem que aperta novamente para fechar. Em todos os seus tópicos você só apertou uma vez. Só estou lembrando para poder ficar mais legivel para todos nós ok? Abraços, qualquer coisa só pedir ajuda.

dioni_deivid_dors
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package exer10;

import javax.swing.JOptionPane;

/**
 *
 * @author Dioni Deivid
 */
public class Exer10 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
    
     int altura;
     int sexo;
     String aux;
     
     
    for (int a=1;a<5;a++) { 
       aux=    JOptionPane.showInputDialog("informe o sexo");
 sexo = Integer.parseInt(aux);  
             
                            /** e leia a altura e o sexo (M,F) de 50 pessoas, 
                            calcule e escreva:   
                             - a maior e a menor altura do grupo, indicando qual o sexo de cada um; 
                             - a média da altura das mulheres; 
                             - a quantidade de homens */     
    
                               // não sei nem como começar colega :/  coloquei o loop em 5 para os testes ,valeu irmão tais me ajudando um monte
    
    
    
    
    
    
    
    
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    }
}
lucas_guj

Amigo que código foi esse que você colocou agora? Por que colocou a duvida dentro do código? Po se puder editar o post eu agradeço, colocando a dúvida fora do código e removendo esses espaços todos em branco, fica melhor de visualizar para qualquer um que tenha a mesma dúvida que você mais tarde. Pode ser? Vou ver se posso te ajudar

lucas_guj

Esse exercício é do Deitel? Se for 8° edição me fala o nome do capitulo e a pagina e o numero do exercicio que talvez eu já tenha ele pronto, porque eu estou lembrando desses exercicios, o do fatorial eu fiz agora, mas esse ai acho que ja tenho pronto, só que tem um problema, POR MIM, nao vejo nenhum problema de copiar e colar o código aqui, mas POR VOCÊ, você acha que vai estar aprendendo dessa forma, ou quer que eu te ajuda a como chegar no resultado?

dioni_deivid_dors
public static void main(String[] args) {
        
    
     int altura;
     String sexo;
     
     
     
    for (int a=1;a<5;a++) { 
      
   sexo = JOptionPane.showInputDialog("informe o sexo");
         
        
       
                            
    
    
    }

    
    }
}
/** e leia a altura e o sexo (M,F) de 50 pessoas, 
calcule e escreva:   
 - a maior e a menor altura do grupo, indicando qual o sexo de cada um; 
- a média da altura das mulheres; 
 - a quantidade de homens ,não sei nem como começar colega :/  coloquei o loop em 5 para os testes*/
dioni_deivid_dors

estou estudando o codigo , para entender melhor , fasso ciencia da computação
ai pega um poco
vo te que estudar mais

lucas_guj

dioni deivid dors:
estou estudando o codigo , para entender melhor , fasso ciencia da computação
ai pega um poco
vo te que estudar mais

Entendi. Mas responde esse post aqui meu por favor, que você não respondeu:

Esse exercício é do Deitel? Se for 8° edição me fala o nome do capitulo e a pagina e o numero do exercicio que talvez eu já tenha ele pronto, porque eu estou lembrando desses exercicios, o do fatorial eu fiz agora, mas esse ai acho que ja tenho pronto, só que tem um problema, POR MIM, nao vejo nenhum problema de copiar e colar o código aqui, mas POR VOCÊ, você acha que vai estar aprendendo dessa forma, ou quer que eu te ajuda a como chegar no resultado?

dioni_deivid_dors

não é não cara,
é exercio da facu mesmo ,
tais ajudando um monte irmão valeu,

lucas_guj

dioni deivid dors:
não é não cara,
é exercio da facu mesmo ,
tais ajudando um monte irmão valeu,

Entendi. Bom, o primeiro erro de cara que da para enxergar é você tentar converter uma letra em um inteiro, está convertendo a string sexo para inteiro. O que já consegui fazer até agora?

dioni_deivid_dors
public static void main(String[] args) {
        
    
     int altura=0,mediaAl;
     String sexoMas;
     String sexoFem;
     String auxi;
     
    for (int a=1;a<5;a++) { 
      
   sexoMas = JOptionPane.showInputDialog("informe a quantidade de homens ");
   sexoFem = JOptionPane.showInputDialog("Informe a quantidade de mulheres");     
   altura += Integer.parseInt(sexoFem);
   
   mediaAl  = altura/5;   
                            
    
    
    }

    
    }
}
/** e leia a altura e o sexo (M,F) de 50 pessoas, 
calcule e escreva:   
 - a maior e a menor altura do grupo, indicando qual o sexo de cada um; 
- a média da altura das mulheres; 
 - a quantidade de homens ,não sei nem como começar colega :/  coloquei o loop em 5 para os testes*/
lucas_guj

Vê se está certo:

Depois que verificar é só mudar o loop do for de: i <= 5 para i <= 50

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/  
package exer10;  
  
import javax.swing.JOptionPane;  
  
/** 
* 
* @author Dioni Deivid 
*/  
public class Exer10 {  
  
    /** 
     * @param args the command line arguments 
     */  
    public static void main(String[] args) { 
        double altura;
        double maiorAltura = 0.0;
        double menorAltura = 999999999; // inicialmente a primeira altura vai ser menor que essa
        double mediaAltura = 0.0; // armazena a media da altura das mulheres
        double totalAltura = 0.0; // armazena a soma total das alturas das mulheres para fazer a media aritmetica
        int mulheres = 0; // armazena a quantidade de mulheres
        int homens = 0; // armazena a quantidade de homens
        String sexo;
        String sexoMaior = ""; // armazena o sexo da menor altura
        String sexoMenor = ""; // armazena o sexo da maior altura
        String alturaStr;

        for (int i = 1; i &lt;= 5; i++ ) {   
            sexo = JOptionPane.showInputDialog( String.format("Informe o sexo %d° pessoa", i) );
            alturaStr = JOptionPane.showInputDialog( String.format("Informe a altura da %d° pessoa", i) );
            altura = Double.parseDouble(alturaStr);
            
            // se sexo for M ou m, sexo vai ser M
            if( sexo.equalsIgnoreCase("m") ) {
                sexo = "M";
                homens++; // cada vez que for M acrescenta 1 unidade ao numero de homens
            }
            // senão se sexo for igual a F ou f, sexo vai ser F
            else if( sexo.equalsIgnoreCase("f") ) {
                sexo = "F";
                totalAltura = altura;
                mulheres++;
            }
            
            if( altura &gt; maiorAltura ) {
                maiorAltura = altura;
                sexoMaior = sexo;
            }
            else if( altura &lt; menorAltura ) {
                menorAltura = altura;
                sexoMenor = sexo;
            }
        }
        
        // Exibi a maior altura e o sexo
        JOptionPane.showMessageDialog(null, String.format("A maior altura foi de : %.2f Do sexo: %s", maiorAltura, sexoMaior));
        // Exibi a menor altura e o sexo
        JOptionPane.showMessageDialog(null, String.format("A menor altura foi de : %.2f Do sexo: %s", menorAltura, sexoMenor));
        // Calcula a media da altura das mulheres
        JOptionPane.showMessageDialog(null, String.format("A media da altura das mulheres foi de: %.2f", totalAltura / mulheres) );
        // Exibi a quantidade de homens
        JOptionPane.showMessageDialog(null, String.format("O total de homens foi de: %d", homens) );
    }
}
dioni_deivid_dors

oh brother valeu cara ,
ajudase um monte , valeu
feliz pascoa ai

lucas_guj

dioni deivid dors:
oh brother valeu cara ,
ajudase um monte , valeu
feliz pascoa ai

Flw. De nada. Feliz pascoa para voce tambem. Topico foi resolvido?

dioni_deivid_dors

uhu , mas onde eu clico ai para resolver ai :?

lucas_guj

Você vai no seu post, em qualquer um e clica em editar. Ai quando abrir a janela para editar o seu post, lá em assunto, a primeira caixa de texto, você acrescenta [RESOLVIDO] no começo do assunto. Ah e no seu código mude na linha

sexo = JOptionPane.showInputDialog( String.format("Informe o sexo %d° pessoa", i) );

Para

sexo = JOptionPane.showInputDialog( String.format("Informe o sexo da %d° pessoa", i) );

Se você perceber eu acrescentei uma preposição “da” depois da palavra sexo, porque estava faltando a preposição e ficando sem coerencia o texto. Abraços. Fuii vou dormir.

marcus_vsr
/** e leia a altura e o sexo (M,F) de 50 pessoas,  
calcule e escreva:    
- a maior e a menor altura do grupo, indicando qual o sexo de cada um;  
- a média da altura das mulheres;  
- a quantidade de homens ,não sei nem como começar colega :/  coloquei o loop em 5 para os testes*/

Bom, vou comentar como eu faria este programa…

Você deve fazer o for, com a quantidade de pessoas necessárias… dentro do for, você creio que você deverá ter 7 variáveis, 5 para números e 2 para caracteres… Logo no primeiro for, vc deve atribuir o valor da altura nas variáveis “maior” e “menor” e o sexo digitado… depois, a cada for, o programa deverá comparar se a altura é maior que a variavel “maior” ou menor que a variável “menor”… caso seja, você deve atribuir esses valores, pois ao chegar no final do programa vc terá o maior e o menor… é importante também caso seja alterada as variáveis “maior” e “menor”, vc armazenar o dado com a indicação se ele é homem ou mulher.
Dentro do for, vc também deverá fazer um teste verificando se o sexo é feminino. Caso seja, você deverá incrementar duas variáveis, uma com a altura da mulher e outra apenas com um ++, para no final do programa vc realizar a média das alturas (total da altura / número de mulheres)… Caso seja homem, basta vc incrementar em um outro contador, pois assim vc saberá a quantidade de homens…

Espero ter ajudado, falows

marcus_vsr

Vixe, não tinha visto que o tópico tinha segunda página!
Como eu deleto meu comentário?

Criado 8 de abril de 2012
Ultima resposta 9 de abr. de 2012
Respostas 21
Participantes 3