Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Queja] Ninguna Solucion esta acorde a lo que piden las reglas del Negocio

las reglas del Negocio son: -Personas con una cantidad de millas inferior a 5,000 no reciben descuento. por lo tanto seria >= 5000 dice inferiores osea hasta 4999 no reciben millas -Personas con una cantidad de millas superior a 30,000 reciben un 20% de descuento. por lo tanto seria > 30000 dice superiores a 30000 por lo cual los clientes con 30000 millas solo reciben un 10% -Personas con una cantidad de millas superior a 5,000, pero inferior a 30,000 reciben un 10% de descuento. por lo tanto seria >= 5000 dice Superior a 5000 osea que seria > 5000 este punto se choca con la regla 1 dejando a los de 5000 mil millas afuera... este item deberia de decir (Personas con una cantidad de millas Entre 5,000 y 30,000 reciben un 10% de descuento) para que los ejercicios queden buenos y sean entendibles y uno pueda plasmar la logica en el programa

aca mi ejemplo con las reglas de negocio ajustadas

let porcentajeDescuento = 0;

let cantidadMillas = prompt("Ingrese la cantidad de millas");

if (cantidadMillas > 30000) { porcentajeDescuento = 20; } else if (cantidadMillas >= 5000) { porcentajeDescuento = 10; } else { porcentajeDescuento = 0; }

console.log(porcentajeDescuento); console.log(cantidadMillas);

alert(Tus Millas Son: ${cantidadMillas} y Tus Porcentaje de Descuento Es: ${porcentajeDescuento});

1 respuesta

Hola!

Este ejercicio me parecio el mas complejo de los que han puesto hasta la fecha, pero no por las razones que me gustarian.

El problema esta bien planteado. Basicamente, y de manera resumida, el problema se puede abordar de la siguiente forma:

Si las millas son mayores a 30000 se aplica un descuento del 20% Si las millas son mayores a 5000 se aplica un descuento del 10% Si las millas son menores de 5000 no hay ningun descuento

Se nos pide encontrar un error en el codigo, sin embargo, el codigo que nos dan en el ejercicio no tiene ningun error (El codigo funciona correctamente).

Sin embargo, despues de analizar la respuesta correcta, llegue a la conclusion de que muchas partes del codigo pueden ser mejoradas.

La variable que almacena el descuento, es inicializada en 0, "let porcentajeDescuento = 0;"

El descuento de los usuarios que tienen menos de 5000 millas, tambien es 0, esto significa, que ya no es necesario alterar este valor para esos usuarios. Es decir, podemos eliminar la linea de "porcentajeDescuento = 0;" en el ejercicio.

if (cantidadMillas > 30000) { porcentajeDescuento = 20; } else if (cantidadMillas > 5000) { porcentajeDescuento = 10; } else { porcentajeDescuento = 0; //Eliminamos esta linea, ya que no es necesaria }

El eliminar esa linea, nos deja con un bloque "Else" vacio, por lo que de igual manera podemos eliminarlo, entonces el ejercicio nos quedaria de la siguiente forma:

if (cantidadMillas > 30000) { porcentajeDescuento = 20; } else if (cantidadMillas > 5000) { porcentajeDescuento = 10; }

Aunque no lo parezca, este codigo es identico al de la respuesta correcta, ya que funciona correctamente, sin embargo, podemos expresar el "ELSE IF" de la siguiente forma.

if (cantidadMillas > 30000) { porcentajeDescuento = 20; } else { if (cantidadMillas > 5000) { porcentajeDescuento = 10; } }

Y listo, expresando el IF dentro de un else, obtenemos la que es la respuesta correcta.

Un cambio que hacen en el ejercicio, es cambiar la igualacion de valores, por sumas, esto no genera ningun cambio, ya que a resultados practicos, es lo mismo.

Ejemplo:

Si tenemos declarada la variable porcentajeDescuento = 0; y despues, en un if colocamos porcentajeDescuento = 10; el valor final de la variable sera 10

Pero, si tenemos declarada la variable porcentajeDescuento = 0; y despues en un if colocamos porcentajeDescuento += 10; el valor final de la variable, de igual forma nos dara 10, pero esto, debido a que 0+10=10, si nosotros modificaramos la variable y la iniciaramos en 5, el resultado seria 15, ya que 5+10=15, utilizar sumas y no asignaciones, puede generar errores, y no se porque utilizaron esta manera en el ejercicio, aunque en este ejemplo, de igual forma funciona correctamente.