Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
9
respuestas

Posible ERROR en sección 2, subsección 7: /02.Condicionales y concatenación/07. Trabajando con condicionales/

No hay error en el código del proyecto a revisar. Las condiciones están bien establecidas y el código funciona perfectamente, lo único que se podría corregir sería una ambigüedad en dos de las reglas de negocio: "Personas con una cantidad de millas superior a 5.000, pero inferior a 30.000 reciben un 10% de descuento." ; "Personas con una cantidad de millas inferior a 5.000 no reciben descuento."; se establece lo que se va a realizar con aquellas personas que superen los 5.000 o sean inferiores a él pero no dice nada con respecto a qué pasa con aquellos que ingresan 5.000 exactamente. Uno tampoco puede suponer si le aplica o no el descuento ya que hay dos reglas que tienen como referencia ser superior o inferior a ese número. ESTO ES ÚNICAMENTE DE LAS REGLAS.

Por otro lado, quizás uno puede suponer que la razón por la que los clientes no ven aplicado el descuento de 5.000 millas y realizan un informe sobre esto es, valga la redundancia, una razón para aplicar el descuento. Sin embargo, la ambigüedad de las reglas no deja claro si el cliente tiene razón o no, ya que las reglas podrían corregirse para que aplique o no.

Teniendo esto en cuenta no hay razón para elegir una opción del multiple choice, ya que el código funciona correctamente, y ninguna de las opciones corrige el tema de las 5.000 millas (donde quizás uno podría inferir un error en las reglas que se sobreentenderían por las opciones de cambio en el código).

DEJO CAPTURAS:

Consigna y código Reglas de negocio e informe Multiple choice A y B Multiple choice Cy D

9 respuestas

Estoy de acuerdo, tuve la misma observación. El código a corregir está correcto.

Las reglas del negocio a mi parecer están mal pues en ninguna integra el valor justo, por ejemplo si alguien canjea 5000 millas exactas su descuento sera de 0 pero según el enunciado solo recibes 0 cuando tus millas son menores a 5000 así que yo entendería, si fuera ese cliente, que 5000 millas aplican un descuento de 10. El mismo caso sucedería con las 30 mil millas.

Si tomamos la respuesta "correcta" según el sistema seria la D y lo sometemos a prueba sucede exactamente el mismo problema que con el código original que supuestamente tenia un error (a mi parecer el único error era ese que mencione arriba).

Por lo cual yo ajuste el código original:

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Al hacer esto y someterlo a pruebas en la consola funciona sin problemas e integra las 30 mil y 5 mil millas con su respectivo descuento. A mi parecer el código de la respuesta correcta solo viene a simplificarlo pero mantiene lo mismo.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Francisco Javier Ramirez Roman lo que decis esta bien, por las dudas aclaro que lo que mencionas de la D sucede para la A (que asigna el valor y por lo tanto no habría problema) como la B (que quita el ultimo else, manteniendo el resto del código), están bien tus ejemplos pero el punto no era cómo corregir el código sino indicar que ya que el código funciona correctamente no tendría sentido elegir una de las opciones que, si bien como mencionas reduce un else innecesario (Lo cual como mencioné realiza la B, y es más te reduce una linea mas), no soluciona el problema de las 5.000 millas. TODO el argumento es para indicar que teóricamente no hay error que corregir, es decir, opción que elegir.

Quizá plantearon mal el ejercicio porque ese code yo lo veo bien

Pues en mi opinión, solo se hace el ajuste en el operador y reducir el código quitando el ultimo else

Efectivamente, no hay error en el código, el ultimo else es redundante y si se fijan, el código correcto es lo mismo, literalmente lo mismo e incluso es mala praxis anidar if's ya que el código va quedando con mucha profundidad y muy poco legible.

incluso, creo que hay maneras de reducir el código, solo utilizar dos if's. ya que hay redundancia.

Justamente venia por este ejercicio, igual para ver correctamente puse un console.log(porcentajeDescuento) para observar que sucedía, pero el código planteado es el correcto, la única corrección que harria es lo que ya han mencionado, de colocar >=30000 millas y >=5000

Concuerdo con ustedes, siento que el ejercicio está algo ambiguo o mal planteado ya que el código en si funciona, aunque se puede mejorar quitando el ultimo else y utilizando el operador de mayor igual ">=".