Ir ao conteúdo
  • Cadastre-se
othman

A lógica está certa?

Recommended Posts

O exercício pede para fazer um programa que peça o nome de duas pessoas o peso e a altura,diga qual é a mais pesada e a mais alta.

Sou iniciante em java estou aprendendo vetores arrecem,então não sei muitos recursos,minha principal dúvida é na hora de obter os dados para o vetor nome,ou seja,eu fiz assim "nome = String.parseString..."mas sei que não é assim,gostaria de saber como eu faço do jeito certo.

import java.util.*;
import java.text.*;
import javax.swing.JOptionPane;

public class peso_altura_nome{
public static void main (String args []){
float peso[] = new float [2],altura[] = new float [2] ;
String nome[] = new String [2];
for(int i = 0 ; i<2 ; i++){
nome[i] = String.parseString(JOptionPane.showInputDialog(null,"Digite o nome da "+(i+1)+"ª pessoa:"));
peso[i] = Float.parseFloat(JOptionPane.showInputDialog(null,"Digite o peso da "+(i+1)+"ª pessoa:"));
altura[i] = Float.parseFloat(JOptionPane.showInputDialog(null,"Digite a altura da "+(i+1)+"ª pessoa:"));
if(peso[0] > peso[1]){
JOptionPane.showMessageDialog(nome[0]+" é mais pesado(a).");
}
if(peso[1] > peso[0]){
JOptionPane.showMessageDialog(nome[1]+" é mais pesado(a).");
}
else{
JOptionPane.showMessageDialog("Ambos possuem o mesmo peso.");
}
if(altura[0]>altura[1]){
JOptionPane.showMessageDialog(nome[0]+" é mais alto(a).");
}
if (altura[1]>altura[0]){
JOptionPane.showMessageDialog(nome[1]+" é mais alto(a).");
}
else{
JOptionPane.showMessageDialog("Ambos possuem a mesma altura.");
}
}
}
}

Desde já agradeço a ajuda.

Obs. Estou usando o DR.Java.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

A ideia usando vetores é +/- essa mesmo, mas a lógica está um pouco errada e trará erros.

Antes de fazer qualquer verificação: se um é maior ou menor que o outro, você precisa "alimentar" os valores nas posições dos vetores, ou seja, dentro do loop (FOR), faça apenas a atribuição de valores para os vetores.

Não esqueça de realizar uma verificação antes de atribuir valores, pois usando JOptionPane.showInpuDialog(), ele permite números e letras, se o usuário digitar uma letra para o vetor instanciado para a altura ou peso (float), ocorrerá um erro.

Sendo assim, acredito que sua estrutura poderia ficar +/- assim:


import java.util.*;
import java.text.*;
import javax.swing.JOptionPane;

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

float peso[] = new float [2],altura[] = new float [2] ;
String nome[] = new String [2];
for(int i = 0 ; i<2 ; i++){
/*Antes de atribuir valores aos vetores, você deve "tratar"
o tipo de caracteres que o usuário digitou, pois, ele pode
digitar a letra A na hora de inserir a altura ou peso.*/
nome[i] = String.parseString(JOptionPane.showInputDialog(null,"Digite o nome da "+(i+1)+"ª pessoa:"));
peso[i] = Float.parseFloat(JOptionPane.showInputDialog(null,"Digite o peso da "+(i+1)+"ª pessoa:"));
altura[i] = Float.parseFloat(JOptionPane.showInputDialog(null,"Digite a altura da "+(i+1)+"ª pessoa:"));
}

/*Sua lógica aqui vai falhar, se o peso[0] for maior que o peso[1],
vai "imprimir" que o nome[0] é mais pesado e depois"imprimirá"
que ambos possuem o mesmo peso.*/
if(peso[0] > peso[1]){
JOptionPane.showMessageDialog(nome[0]+" é mais pesado(a).");
}
if(peso[1] > peso[0]){
JOptionPane.showMessageDialog(nome[1]+" é mais pesado(a).");
}
else{
JOptionPane.showMessageDialog("Ambos possuem o mesmo peso.");
}
if(altura[0]>altura[1]){
JOptionPane.showMessageDialog(nome[0]+" é mais alto(a).");
}
if (altura[1]>altura[0]){
JOptionPane.showMessageDialog(nome[1]+" é mais alto(a).");
}
else{
JOptionPane.showMessageDialog("Ambos possuem a mesma altura.");
}

//Possivel solução para as comparações
if(peso[0] > peso[1]){
JOptionPane.showMessageDialog(nome[0]+" é mais pesado(a).");
}
else{
if(peso[1] > peso[0]){
JOptionPane.showMessageDialog(nome[1]+" é mais pesado(a).");
}
else{
JOptionPane.showMessageDialog("Ambos possuem o mesmo peso.");
}
}
....
....
}
}

Bons estudos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×