Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Bcks7 en 10 de Septiembre 2016, 17:09
-
Les dejo mi solución a este ejercicio CU00636B del curso de programación orientada a objetos con Java, esperando esté bien.
//CU00636B if, else, if else
public class Rueda{//Inicio de la clase
private String tipo;
private double grosor;
private double diametro;
private String marca;
public Rueda(){//Constructor
tipo = "";
grosor = 0;
diametro = 0;
marca = "";
}
//Metodos establecer valores de atributos
public void setTipo(String valorTipo){
tipo = valorTipo;
}
public void setGrosor(double valorGrosor){
grosor = valorGrosor;
}
public void setDiametro(double valorDiametro){
diametro = valorDiametro;
}
public void setMarca(String valorMarca){
marca = valorMarca;
}
public void comprobarDimensiones(){//Metodo Comprobar Dimensiones
if (diametro > 1.4){System.out.println("La rueda es para un vehiculo grande");
}else if(diametro <= 1.4 || diametro > 0.8){System.out.println("La rueda es para vehiculo mediano");
}else{System.out.println("La rueda es para un vehiculo pequeño");}
if (diametro > 1.4 && grosor <0.4 || diametro <= 1.4 || diametro > 0.8 && grosor < 0.25){
System.out.println("El grosor para esta rueda es inferior al recomendado");
}
}
//Metodos obtener valores de atributos
public String getTipo(){return tipo;}
public double getGrosor(){return grosor;}
public double getDiametro(){return diametro;}
public String getMarca(){return marca;}
}//Cierre de la clase
-
Hola Bcks7 no tienes los condicionales bien planteados
Si introduzco diámetro 1.2 y grosor 2 me aparece este mensaje:
La rueda es para vehiculo mediano
El grosor para esta rueda es inferior al recomendado
¿Por qué? Porque tienes este código:
if (diametro > 1.4 && grosor <0.4 || diametro <= 1.4 || diametro > 0.8 && grosor < 0.25){
System.out.println("El grosor para esta rueda es inferior al recomendado");
}
Aquí dice "Si el diámetro es mayor que 1.4 y el grosor menor que 0.4, ó el diámetro es menor o igual 1.4, o el diámetro mayor de 0.8 y el grosor menor de 0.25 entonces mostrar que el grosor es inferior al recomendado".
Pero eso no es correcto, por el hecho de que el diámetro sea igual o menor que 1.4 no debe aparecer ese mensaje.
Esta expresión también es muy extraña: else if(diametro <= 1.4 || diametro > 0.8 )
Ahí dice "si el diámetro es menor o igual a 1.4, ó si el diámetro es mayor que 0.8, entonces..."
Recomendación: revisa este ejercicio bien resuelto: https://www.aprenderaprogramar.com/foros/index.php?topic=1214.0
Fíjate cómo se deben escribir las condiciones y vuelve a hacerlo escribiendo paso a paso las condiciones. Si tienes dudas consúltanos.
Saludos
-
Gracias, así lo haré.
-
Bueno, dejo mi ejercicio corregido en base al link de la respuesta
//CU00636B ESTRUCTURA O ESQUEMA DE DECISION EN JAVA, IF ELSE, IF ELSE IF.
public class Rueda{//Inicio de la clase
private String tipo;
private double grosor;
private double diametro;
private String marca;
public Rueda(){//Constructor
tipo = "";
grosor = 0;
diametro = 0;
marca = "";
}
//Metodos establecer valores de atributos
public void setTipo(String valorTipo){
tipo = valorTipo;
}
public void setGrosor(double valorGrosor){
grosor = valorGrosor;
}
public void setDiametro(double valorDiametro){
diametro = valorDiametro;
}
public void setMarca(String valorMarca){
marca = valorMarca;
}
public void comprobarDimensiones(){//Metodo Comprobar Dimensiones
if (diametro > 1.4){System.out.println("La rueda es para un vehiculo grande");}
else if ((diametro <= 1.4)&&(diametro > 0.8)){System.out.println("La rueda es para un vehiculo mediano");}
else{System.out.println("La rueda es para un vehiculo pequeño");}
if ((diametro > 1.4)&&(grosor < 0.4)||(diametro <= 1.4)&&(diametro > 0.8)&&(grosor < 0.25))
{System.out.println("El grosor de la rueda es inferior al recomendado");}
}
//Metodos obtener valores de atributos
public String getTipo(){return tipo;}
public double getGrosor(){return grosor;}
public double getDiametro(){return diametro;}
public String getMarca(){return marca;}
}//Cierre de la clase
Saludos.
-
Ahora bien. Saludos