Autor Tema: PSEINT Lógica o algoritmo para un cajero automático extraer dinero efectivo  (Leído 33952 veces)

pr0jectz

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Buenas tardes, tenemos que presentar un trabajo práctico y estamos "colgados" en la parte lógica del proceso:

Esta es la consigna:

Citar
Trabajo Práctico Nº 1   
Escriba un programa que represente un cajero automático para efectuar retiros de efectivo en un banco.
El cajero manejará billetes con las siguientes denominaciones: billetes de 50, 100, 200 y 500 pesos.
Inicialmente se debe pedir cuantos billetes se cargan al cajero para cada denominación.
Posterior a esta carga inicial se inicia el ciclo de extracción donde:
El cajero solicitará al usuario que ingrese la cantidad a retirar. Tener en cuanta:
Que el monto ingresado no supere los $5000.
Que el monto ingresado no exceda lo que queda de efectivo en el cajero.
Que se ingrese montos múltiplos de $50.
Si se produce alguno de los ítem anteriores dar mensajes de error explicando en detalle porque se produjo.
Si hay efectivo suficiente se  proporcionará la cantidad solicitada usando los billetes con las nominaciones mencionadas y empleando la estrategia de usar la cantidad mínima de billetes mientras sea posible y se debe restar de los acumulados del cajero.  Ejemplos:

Ingrese la cantidad a retirar: $ 1,850.00

La cantidad proporcionada es: 3 billetes de 500
1 billete de 200
1 billete de 100
1 billete de 50

Ingrese la cantidad a retirar: $ 450.00

La cantidad proporcionada es: 2 billetes de 200
1 billete de 50

Y esto es lo que tenemos hasta el momento:
Código: [Seleccionar]
Si saldo>0
        Escribir "IMPORTANTE! Puede retirar hasta $5000 y en múltiplos de $50"
Escribir "Ingrese el monto que desea extraer:" Sin Saltar
Repetir
Leer extraccion
Borrar Pantalla
Si (extraccion MOD 50) <> 0
Escribir "# ERROR: El valor ingresado no es múltiplo de $50"
FinSi
Si (extraccion > 5000)
Escribir "# ERROR: El valor ingresado supera el límite de $5000"
FinSi
Si extraccion > saldo
Escribir "** No hay saldo suficiente, puede retirar hasta: $",saldo
FinSi
Escribir "Ingrese el monto que desea extraer:" Sin Saltar
Hasta Que (extraccion <= 5000) y (extraccion <= saldo) y (extraccion MOD 50 = 0)
Borrar Pantalla
**################################**
SiNo
Escribir "** NO HAY DINERO ~ FUERA DE SERVICIO **"
Escribir ""
FinSi

Donde estan los #### es donde seguiria la parte logica. Alguien tiene idea de como se haria? Tengo que lograr que me de el efectivo el cajero, empezando con los billetes de mayor denominacion (500), cuando estos se acaben, que la prioridad sean los siguientes(200) y en sucesivo.
Muchas gracias!
« Última modificación: 20 de Julio 2018, 17:12 por Ogramar »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:[PSEINT] Ayuda sobre lógica
« Respuesta #1 en: 29 de Julio 2017, 12:16 »
Buenas prOjectz

Te dejo un ejemplo de como lo orientaría yo.

Código: [Seleccionar]
Algoritmo Cajero

Escribir "Inserte la cantidad de billetes de 500 que contendrá el cajero: "
Leer cantidadDe500
saldo = 500 * cantidadDe500
Escribir "Inserte la cantidad de billetes de 200 que contendrá el cajero: "
Leer cantidadDe200
saldo = saldo + (cantidadDe200 * 200)
Escribir "Inserte la cantidad de billetes de 100 que contendrá el cajero: "
Leer cantidadDe100
saldo = saldo + (cantidadDe100 * 100)
Escribir "Inserte la cantidad de billetes de 50 que contendrá el cajero: "
Leer cantidadDe50
saldo = saldo + (cantidadDe50 * 50)

Si saldo>0 Entonces


Si saldo < 5000 Entonces
Escribir "IMPORTANTE! Puede retira hasta $", saldo, " y en múltiplos de $50"
SiNo

Escribir "IMPORTANTE! Puede retira hasta $5000 y en múltiplos de $50"
FinSi

Repetir
Escribir "Ingrese el monto que desea extraer:" Sin Saltar
Leer extraccion
Borrar Pantalla
Si (extraccion MOD 50) <> 0 Entonces
Escribir "# ERROR: El valor ingresado no es múltiplo de $50"
FinSi
Si (extraccion > 5000) Entonces
Escribir "# ERROR: El valor ingresado supera el límite de $5000"
FinSi
Si extraccion > saldo Entonces
Escribir "** No hay saldo suficiente, puede retirar hasta: $",saldo
FinSi
Hasta Que (extraccion <= 5000) y (extraccion <= saldo) y (extraccion MOD 50 = 0)

Si extraccion >= 500 Entonces
billete500 = TRUNC(extraccion / 500)
Si billete500 > cantidadDe500 Entonces
extraccion = extraccion - (cantidadDe500 * 500)
billete500 = cantidadDe500
SiNo
extraccion = extraccion - (billete500 * 500)
FinSi
FinSi

Si extraccion >= 200 Entonces
billete200 = TRUNC(extraccion / 200)
Si billete200 > cantidadDe200 Entonces
extraccion = extraccion - (cantidadDe200 * 200)
billete200 = cantidadDe200
SiNo
extraccion = extraccion - (billete200 * 200)
FinSi
FinSi

Si extraccion >= 100 Entonces
billete100 = TRUNC(extraccion / 100)
Si billete100 > cantidadDe100 Entonces
extraccion = extraccion - (cantidadDe200 * 100)
billete100 = cantidadDe100
SiNo
extraccion = extraccion - (billete100 * 100)
FinSi
FinSi

Si extraccion >= 50 Entonces
billete50 = TRUNC(extraccion / 50)
Si billete50 > cantidadDe50 Entonces
extraccion = extraccion - (cantidadDe200 * 50)
billete50 = cantidadDe50
SiNo
extraccion = extraccion - (billete100 * 50)
FinSi
FinSi

Escribir "La cantidad proporcionada es: "
Escribir billete500, " billete de $500"
Escribir billete200, " billete de $200"
Escribir billete100, " billete de $100"
Escribir billete50, " billete de $50"

SiNo

Escribir "** NO HAY DINERO ~ FUERA DE SERVICIO **"
Escribir ""

FinSi

FinAlgoritmo


Saludos. ;D
« Última modificación: 29 de Julio 2017, 12:20 por pedro,, »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".