Skip to content

Tarea: Desglose del cambio

Tema: Resolución de problemas secuenciales (4.1.2)

Instrumento: Hoja de trabajo de propuesta algorítmica


CampoInformación
Nombre
Grupo
Fecha
EjercicioDesglose del cambio

Una tienda quiere que su caja indique al cajero cuántos billetes y monedas de cada denominación debe entregar como cambio, empezando siempre por la denominación más grande.

El cajero proporciona el importe de la compra y el importe con el que paga el cliente. Ambos son cantidades enteras de pesos.

Denominaciones disponibles en la caja:

TipoDenominaciones
Billetes500, 200, 100, 50, 20
Monedas10, 5, 2, 1

El algoritmo debe mostrar el cambio total y, después, la cantidad de piezas de cada denominación, una por línea.

Restricciones:

  • El importe de la compra es un entero mayor que cero.
  • El pago es un entero mayor o igual que el importe de la compra.
  • No se manejan centavos.

Realiza el análisis, desarrolla el pseudocódigo, escribe la pantalla esperada, haz la prueba de escritorio y verifica en PSeInt, completando las secciones 1 a 7.

Utiliza la notación de la materia:

ElementoNotación
Inicio y finInicio … Fin
TiposENTERO, REAL, CADENA, CARACTER, LOGICO
VariablescamelCase
ConstantesSCREAMING_SNAKE_CASE
EntradaEntrada: (precedida por un mensaje de solicitud)
SalidaMostrar
Asignación=
División enteratrunc(<expresión>)
Residuo%

¿Qué problema debo resolver?


¿Qué resultado debo obtener?


DatoTipoDescripción
ResultadoTipoDescripción
DatoValorDescripción

¿Qué patrón de problema secuencial es? ¿Por qué?


¿Qué variable guarda “lo que falta por entregar” después de cada denominación?



¿Qué ocurriría si el pago fuera menor que la compra? ¿Lo puede detectar un algoritmo secuencial?


IdentificadorTipoValor
IdentificadorTipo
Inicio
Fin

Escribe exactamente lo que verá el cajero con el caso normal (compra = 613, pago = 2000), incluidos los mensajes de solicitud.

CasoCompraPagoCambio esperadoDesglose esperadoDesglose obtenido¿Coincide?
Normal61320001387500×2, 200×1, 100×1, 50×1, 20×1, 10×1, 5×1, 2×1, 1×0
Solo monedas951005Todas en 0 excepto 5×1
Pago exacto2502500Todas en 0
Todas las denominaciones888

Completa el último caso: elige una compra y un pago cuyo cambio sea 888 y escribe el desglose esperado.

Si algún resultado no coincide, indica qué corregiste:


Realiza esta sección después de terminar el pseudocódigo (sección 4) y su prueba (sección 6).

PseudocódigoPSeInt
Inicio … FinAlgoritmo DesgloseCambio … FinAlgoritmo
ENTERO compraDefinir compra Como Entero
ENTERO BILLETE_500 = 500 (constante)Definir BILLETE_500 Como Entero y después BILLETE_500 = 500
Entrada: compraLeer compra
Mostrar "Cambio: $", cambioEscribir "Cambio: $", cambio
trunc(...), %trunc(...), % (igual)

Configura PSeInt con el perfil Flexible. Conserva los mismos nombres y el mismo orden de instrucciones.

Algoritmo DesgloseCambio
FinAlgoritmo
CasoPantalla esperada (sección 5 o 6)¿La pantalla obtenida en PSeInt coincide?
Normal
Solo monedas
Pago exacto
Todas las denominaciones

RepresentaciónRequerida
PseudocódigoSí (sección 4)
Pantalla esperadaSí (sección 5)
Diagrama de flujoNo
Traducción y ejecución en PSeIntSí: traducción (7.1) y comparación (7.2)
OtraAnálisis y diseño de los datos (secciones 1 a 3)

Esta hoja con las secciones 1 a 7 completas.

Fecha y medio de entrega: los indica el profesor.