Tenho um exércicio para fazer usando while, fiz ele só que me perco na hora de fazer o calculo…
Ana tem 1,5 metros e cresce 2 cm por ano, enquanto Zé tem 1,1 metros e cresce 3 centímetros por ano. Construa um programa que calcule e mostre quantos anos serão necessários para que Zé seja maior que Ana.
O programa que eu fiz é esse,mais acho que meu erro começa com o conteudo dentro do While…
import javax.swing.*;
public class Altura {
public static void main(String[] args) {
String nome_homem,nome_mulher;
double altura_homem,altura_mulher;
int anos_necessarios,anos=0,homem_cresce=3,mulher_cresce=2;
nome_homem=JOptionPane.showInputDialog("Digite o nome do homem");
altura_homem=Double.parseDouble(JOptionPane.showInputDialog("Digite a altura do homem"));
nome_mulher=JOptionPane.showInputDialog("Digite o nome do mulher");
altura_mulher=Double.parseDouble(JOptionPane.showInputDialog("Digite a altura do mulher"));
while (altura_homem>altura_mulher){
anos=Integer.parseInt(JOptionPane.showInputDialog("Digite o ano"));
}
System.out.println ("os anos necessarios são"+anos);
}
}
Oi.
Acho que você não entendeu muito bem o problema.
Se a Ana cresce 2 cm por ano e Zé, 3, você deve iterar enquanto a altura do Zé seja menor que a da Ana. Dentro da estrutura de repetição, você deve somar 0.2 na altura de Ana e 0.3 na altura de Zé. Além disso, deve incrementar uma variável (por exemplo, anos), para, no final apresentar o valor. Portanto, falta criar uma nova variável inteira, arrumar o cabeçalho do while e fazer os cálculos dentro do while.
public static void main(String[] args) {
String nome_homem,nome_mulher;
double altura_homem,altura_mulher;
int anos=0;
nome_homem=JOptionPane.showInputDialog("Digite o nome do homem");
altura_homem=Double.parseDouble(JOptionPane.showInputDialog("Digite a altura do homem"));
nome_mulher=JOptionPane.showInputDialog("Digite o nome do mulher");
altura_mulher=Double.parseDouble(JOptionPane.showInputDialog("Digite a altura do mulher"));
while (altura_homem < altura_mulher){
altura_homem += 3;
altura_mulher += 2;
anos++;
}
System.out.println ("os anos necessarios são"+anos);
}
Isso que o André te repondeu. quem vai achar é o programa, simulando os anos (em cada laço) somando a altura que cada um cresce. Aí qdo a altura de um ultrapassar a dos outro, vc terá o número de anos. Apesar de nao estar explicito, é provavelmente assim que quem fez o enunciado deseja que vc faça.
Caso contrário, vc poderia fazer via sistema:
Então é a opção 2, ele cresce 30 cm por ano e ela 20. E Na realidade, no 4 ano eles estariam do mesmo tamanho, caso em que teria quer ser usado >= na inequaçao. Como ela quer maior, seria no 5 ano…
public class Altura
{
public static void main(String[] args)
{
double alturaZe = 1.1, alturaAna = 1.5;
double crescimentoAnoZe = 0.3, crescimentoAnoAna = 0.2;
int anos = 0;
while (alturaZe < alturaAna) {
anos++;
alturaZe += crescimentoAnoZe;
alturaAna += crescimentoAnoAna;
}
System.out.println("Em " + anos + " anos, Ze vai ser maior.");
}
}