Ajuda em Exercicio com potencia, metro e kilograma

19 respostas
B

Olá, tenho um exercicio para resolver, onde o programa pede o peso e a altura da pessoa, e depois calcula o IMC!

Duas perguntas:

  • como faço para o programa detectar kilogramas(peso) e metros(altura)??
    -Peso(kilogramas) deve ser um valor maior que 0,5
    -Altura(metros) deve ser um valor maior que 0,1

  • A formula é: IMC = peso * altura²
    -como faço para calcular potencia??

19 Respostas

lucas_guj

Mais uma vez, você não está pensando na lógica. Veja os dados que sua classe quer e o que ela quer fazer. Faça por etapas.

lucas_guj

Eu já tenho esse programa pronto, me mostre o que você já fez para eu poder te ajudar.

D

tenta fazer pelo menos o começo o resto a gente te ajuda…

B

Eu fiz isso até agora! Se tiver algo para por, mandem please!
OBS: Nesse exercicio preciso fazer um comando que na hora que pede “Informe o peso” ao clicar em cancelar o aplicativo deve fechar! (sem que de erro lah na parte de baixo em vermelho)

package ExerciciosJava2;
import javax.swing.*;
public class Exercicio0707 {
    
    public static void main(String[] args) {
        double pesoInformado = 0;
        double alturaInformado = 0;
        double IMC = 0;
            String informePeso = JOptionPane.showInputDialog(null, "Informe o seu peso (em kilogramas)");
            pesoInformado = Double.parseDouble(informePeso);
            if (pesoInformado <= 0.5) {
                String pesoInvalido = String.format("Peso Inválido: %.2f", pesoInformado);
                JOptionPane.showMessageDialog(null, pesoInvalido, "Erro", 0);
                System.exit(0);
            }          
            String informeAltura = JOptionPane.showInputDialog(null, "Informe a sua altura (em metros)");
            alturaInformado = Double.parseDouble(informeAltura);
            if (alturaInformado <= 0.1) {
                String alturaInvalido = String.format("Altura Inválida: %.2f", alturaInformado);
                JOptionPane.showMessageDialog(null, alturaInvalido, "Erro", 0);
                System.exit(0);
            }
            IMC = pesoInformado / Math.pow(alturaInformado, 2);
            String mensagem = String.format("Peso: %.2f ", pesoInformado);
            String mensagem1 = String.format("\nAltura: %.2f ", alturaInformado);
            String mensagem2 = String.format("\nIMC: %.2f ", IMC);
            JOptionPane.showMessageDialog(null, mensagem+mensagem1+mensagem2, "Mensagem", 1);
            System.exit(0);         
    }
}
lucas_guj

Testei seu programa e parece estar funcionando normalmente. Menos quando aperta cancelar que ocorre uma exceção e o programa fecha. Qual erro em vermelho você se refere?

B

Entao isso q eu n sei fazer… Ao clicar em cancelar, o programa fechar sem da erro…
Eu quero q clique em cancelar e o programa feche normal…

O erro que aparece qndo clico em cancelar é :

run:

Exception in thread main java.lang.NullPointerException

at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1008)

at java.lang.Double.parseDouble(Double.java:540)

at ExercicioIMC.ExercicioIMC.main(ExercicioIMC.java:10)

Java Result: 1
lucas_guj

Cara isso é uma exceção. Já estudo exceção? Eu só dei uma passada rápida, nem fui a fundo. Eu iria falar para você tratar o botão cancelar, mas pelo visto ele não é um botão separado, e deve estar acoplado ao JOptionPane. Então o que eu faria? Dar uma lida na Java API a classe JOptionPane e ver suas propriedades e o metodo showInputDialog. Independente do que você for fazer eu vou ler de qualquer jeito, porque te ajudando eu estou aprendendo também. Mas eu aconselho você a procurar lá e ler. Quando eu tiver tempo aqui te respondo se eu conseguir resolver.

lucas_guj

Cara, consegui. Acrescenta a verificação if no seu código:

String informePeso = JOptionPane.showInputDialog(null, "Informe o seu peso (em kilogramas)");
if( informePeso == null ) {
    System.exit(0);
}
D

o lucas guj ja respondeu

D

o jeito que eu faço é diferente eu cooloco input dialog mais d outra forma…

lucas_guj

Como? Posta ai para a gente ver. Ter várias maneiras de se fazer não é problema. Ai ele decide qual o melhor para ele.

D
import java.util.*;

import javax.swing.JOptionPane;
public class novo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		double peso,altura,imc;
   peso = Double.parseDouble(JOptionPane.showInputDialog("digite o peso"));
   altura = Double.parseDouble(JOptionPane.showInputDialog("digite a altura"));
   
   if(peso > 0.5){
	   JOptionPane.showMessageDialog(null, "peso válido");
   }else{
	   JOptionPane.showMessageDialog(null, "peso inválido");
   }
   if(altura > 0.1){
	   JOptionPane.showMessageDialog(null, "Altura Válida");
   }else{
	   JOptionPane.showMessageDialog(null, "Altura inválida");
   }
   imc = peso*Math.pow(altura,2);
   JOptionPane.showMessageDialog(null, "o imc é "+imc);
	}

}
D

faltou algumas coisas é só ele acrescenta q funfa…é q to com preguiça mesmo :XXXXX

D

se ele se basea no código dele ali encima ja da pra ver :X oq falta

D

tem umas coisas pra ajeita mais é quase isso…

D
arrumei melhor um pouco agoraa faltoou a parte do system.exit(0) que da pra ele ver o que pode fazer nesse codigo ou vc mesmo lucas ajuda ai....eu vou ter q sair se cuidaa espero ter ajudado....
import javax.swing.JOptionPane;
public class novo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		double peso,altura,imc;
   peso = Double.parseDouble(JOptionPane.showInputDialog("digite o peso"));
 
   
   if(peso > 0.5){
	   JOptionPane.showMessageDialog(null, "peso válido");
   }if(peso < 0.5){
	   JOptionPane.showMessageDialog(null, "peso inválido");
   }
   JOptionPane.showMessageDialog(null, "o peso é "+peso);
   altura = Double.parseDouble(JOptionPane.showInputDialog("digite a altura"));
   
  if(altura > 0.1){
	   JOptionPane.showMessageDialog(null, "Altura Válida");
   }if(altura < 0.1){
	   JOptionPane.showMessageDialog(null, "Altura inválida");
   }
   JOptionPane.showMessageDialog(null, "a altura é "+altura);
   imc = peso*Math.pow(altura,2);
   JOptionPane.showMessageDialog(null, "o imc é "+imc);
	}

}
lucas_guj

Eu não entendi porque você fez duas verificações, de uma valida e uma nao valida. Acredito que só uma bastava, dizendo que era invalido, e se fosse valido ele ja armazena e pula para o proximo dado a ser inserido. Me explica o melhor o porque você fez isso tudo e o que quer que eu ajude pois não entendi muito bem. O que ele queria era apenas sair sem lançar exceção quando fosse cancelar. ACREDITO eu. Não tenho certeza. Estou na espera da resposta dele.

D

entaoo tbm nao entendi direito eu fiz isso de acordo com o enunciado mais se ele quer sair
depois eu chego em casa e vejo…mais agora to no servico ele tbm tem q responder ne sumiu…

D
import java.util.*;

import javax.swing.JOptionPane;
public class novo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		double peso,altura,imc;
   peso = Double.parseDouble(JOptionPane.showInputDialog("digite o peso"));
 
   
   if(peso > 0.5){
	   JOptionPane.showMessageDialog(null, "peso válido");
   }if(peso <= 0.5){
	   JOptionPane.showMessageDialog(null, "peso inválido");
	   JOptionPane.showMessageDialog(null, peso, "Erro", 0);   
       System.exit(0);   

   }
   JOptionPane.showMessageDialog(null, "o peso é "+peso);
   altura = Double.parseDouble(JOptionPane.showInputDialog("digite a altura"));
   
  if(altura > 0.1){
	   JOptionPane.showMessageDialog(null, "Altura Válida");
   }if(altura <= 0.1){
	   JOptionPane.showMessageDialog(null, "Altura inválida");
	   JOptionPane.showMessageDialog(null, altura, "Erro", 0);   
       System.exit(0);   

   }
   JOptionPane.showMessageDialog(null, "a altura é "+altura);
   imc = peso*Math.pow(altura,2);
   JOptionPane.showMessageDialog(null, "o imc é "+imc);
	}

}

pronto exercicio completo agora se ele nao quer as duas verificações é só tirar os dois ifs que esta verificando e prontoo.

Criado 18 de março de 2012
Ultima resposta 20 de mar. de 2012
Respostas 19
Participantes 3