¿ayuda con este algoritmo?

dice asi :

escribir el algoritmo que devuelve el cambio de las maquinas de la cafeteria .La maquina solo devuelve monedas de 2 , 1 , 0.5 , 0.2 , 0.1 $

solo quiero saber como se escribiria en una hoja de papel

no lo quiero en ningun lenguaje de programacion , solo quiero la logica

1 respuesta

Calificación
  • hace 8 años
    Respuesta preferida

    Bueno, todo parte de la cantidad que se ingresa y el precio del producto, por ejemplo, supongamos que el cliente inserta una moneda de $2 y el vaso con café cuesta $1, el vuelto sería la diferencia, siempre restando el precio del producto con el valor ingresado, pero como en este y otros casos la diferencia resultará en un número negativo, verificas si este es mayor a cero (positivo) o menor (negativo), si es menor, lo multiplicas por -1 para obtener el mismo valor pero en positivo. Como la máquina solo puede devolver determinadas monedas, realizas una decisión múltiple según el tipo de caso, puedes manejar esto con un Select Case o con decisión anidadas. Seguidamente, realiza la comparación entre el cambio que la máquina debería devolver con los valores pre-determinados y según sea, se devuelve el cambio correspondiente, por ejemplo, si el cliente compra 3 vasos con café, considerando que cada uno cuesta $1.20 y el cliente inserta $5, a primera vista, el cambio debería de ser $5 - ($1.20 *3) = $1.40, luego, comparas esta cifra con las cantidades de cambio predeterminadas. En este ejemplo, el cambio es menor que $2, por lo que deberías trabajar con el valor anterior, es decir, el de $1, para lo cual realizas la resta $1 - $1.40 = $0.40 (siempre convirtiendo la cifra a positivo), verificas si aún hay cambio por entregar, si lo hay, comparas la cantidad que queda con la lista de cambios que la máquina puede entregar, en este caso, lo más cercano es $0.20 pues $0.50 es mayor a la cifra resultante. Finalmente, la máquina entrega la cantidad de monedas del valor de cambio más cercano al cambio restante, 2 monedas de $0.20, podrías entregas 4 de $0.10, pero el algoritmo debe de optimizar esta tarea, haciendo que el cambio se entregue utilizando la menor cantidad de monedas posible, para lo cual, puedes comparar un pre-resultado A con un pre-resultado B, por ejemplo, verificas si alguna cantidad de tu lista de cambios coincide en cantidad con el cambio que se debe entregar, en este caso, tanto $0.20 como $0.10 coinciden con los $0.40 pues entregando 2 monedas del primero o 4 del segundo se llega a entregar todo el cambio, pero es ahí en donde debes de comparar la cantidad de monedas que se van a entregar y eliges la que menos monedas utilice. Esto último ha sido una sugerencia mía, pues en realidad la máquina puede entregar las 4 monedas de $0.10, pero si el algoritmo se adaptara a un caso más real, tendrías que primero verificar cuántas monedas de cada cantidad tiene la máquina y si la cantidad seleccionada satisface al vuelto a entregar, por ejemplo, si la máquina tuviera solo 3 monedas de $0.10, no podría entregar todo el cambio y tendría que optar por la opción más próxima, pero si ni esa u otra opción cumple con toda la entrega, se debe de devolver solo la cantidad que alcance, por ejemplo, se podría entregar 2 monedas de $0.10 y 1 de $0.20, pero esto tendría que hacerse en base a la cantidad de monedas de cada cantidad que la máquina contenga.

    Saludos.

¿Aún tienes preguntas? Pregunta ahora para obtener respuestas.