Practica 1

También podría gustarte

Está en la página 1de 2

Informática

Práctica 1 Año 2018/2019


Facultad de CC.
Cambio de Moneda Matemáticas
14 de noviembre de 2018

El problema de la devolución de moneda consiste en encontrar el mínimo número de


monedas que tenemos que devolver a una persona que nos haya hecho un determinado
pago.
Ejemplo Si una persona nos pagase un periódico, que cuesta 1,25 e, con un billete de
5 e, tendríamos que devolver 3,75 e, pero podríamos elegir diferentes cambios, por ejemplo:

375 monedas de 0,01 e

3 monedas de 1 e y 15 monedas de 0,05 e.

3 monedas de 1 e, 1 moneda de 0,50 e, 1 moneda 0,20 e y 1 moneda de 0,05 e.

Si quisiésemos que el número de monedas fuese el mínimo posible, la solución sería: 1


moneda de 2 e, 1 moneda de 1 e, 1 moneda de 0,50 e, 1 moneda 0,20 e y 1 moneda de
0,05 e.

1 Devolución sin restricciones


Considerando que no tenemos ninguna limitación en el número de monedas de que dis-
ponemos para hacer la devolución, escribe un programa que solucione el problema de la
devolución de moneda.

2 Devolución con límite de monedas


La solución basada en la premisa de que siempre tenemos las monedas suficientes de cual-
quier tipo para hacer la devolución no es muy realista. Resuelve el problema de la devolución
de moneda, suponiendo que puede haber limitaciones en el número de monedas de las que
disponemos para dar el cambio.

Comentario: El algoritmo con el que has resuelto las cuestiones anteriores puede que sirva
para el sistema monetario español, pero que, en general, no sirva para cualquier sistema monetario.
Piensa por ejemplo, en un sistema monetario en el que tuviésemos monedas de valor 6, 4 y 1
doblones. ¿Cuál sería la solución según tu algoritmo si tuviésemos que devolver 8 doblones? ¿Es
mejor esa solución que 2 monedas de 4 doblones?

Más indicaciones:

En el apartado 1 debes escribir una función que se llame cambio(val) que tome un va-
lor en euros y devuelva 8 enteros positivos (mayores o iguales a cero) correspondientes
a las monedas de cada tipo, empezando por las de mayor valor.

Para el apartado 2 debes escribir una función que se llame


cambio_rest(val,lim2e,lim1e,lim50,lim20,lim10,lim5,lim2,lim1) cuyos parámetros
corresponden al valor en euros que hay que devolver y el número de monedas de cada
tipo de las que disponemos. Ten en cuenta que, ahora, podría ser que no hubiera
solución o que el algoritmo que, con lo que sabemos, podemos implementar no la
encuentre. Para distinguir si hemos encontrado una solución o no devolveremos un
valor booleano que nos indique si hemos tenido éxito o no seguido de ocho enteros
(con el mismo significado que antes si hemos tenido éxito y valores arbitrarios si no)

Fecha límite de entrega: 25 de Noviembre.

También podría gustarte