Proyecto Cajero Automatico Funfamentos
Proyecto Cajero Automatico Funfamentos
1. Pida el nmero de billetes de $50.000, de $20.000 y de $10.000 que tendr el cajero para poder armar la cantidad
solicitada.
2. Permita ingresar la cantidad a retirar.
3. Escriba la cantidad de billetes de las tres denominaciones que debe entregar al cliente. El cajero siempre entrega la
menor cantidad de billetes posible.
4. Valide que la cantidad solicitada por el cliente sea mayor a $10.000 y mltiplo del mismo. En caso contrario el programa
debe mostrar un mensaje indicando que la cantidad no es correcta.
5. Valide que posee suficiente dinero para realizar el retiro; en caso contrario, el programa debe mostrar un mensaje
indicando la insuficiencia de dinero del cajero para realizar la transaccin.
6. Valide que con los billetes disponibles puede armar la cantidad solicitada. Por ejemplo, si el cajero solo tiene un billete de
cada denominacin, tiene en total $ 80.000. Para un retiro de $30.000 entregar un billete de veinte y uno de diez, pero
para un retiro de $ 40.000 debe sacar un mensaje indicando que no puede armar esta cantidad con un billete de cincuenta,
uno de veinte y uno de diez por ejemplo.
7. La mxima cantidad a retirar es $600.000 en un solo retiro
Proceso Cajero_Automatico
Definir b50,b20,b10 como entero//Variables para indicar los billetes del cajero
Definir valRetiro,valRetiro2, montoCajero como entero
Definir Rb50, Rb20, Rb10 como entero//Variable para indicar los billetes a retirar
Definir sw como entero//Variable(Como un switch) para saber si se puede o no hacer el retiro
definir op Como Entero//Variable para saber si se quiere seguir ejecutando todo el programa
FinSi
FinSi
FinSi
si(sw=1)
Escribir "Presiones una tecla para continuar"
Esperar Tecla
FinSi
Hasta Que (sw=0)
//Asigno el valor del retiro en otra variable para hacer calculos y saber si faltar o sobrar dinero
//a la hora de enviar la respuesta
valRetiro2<-valRetiro
//Este es el proceso de prueba para saber si habr una transaccion exitosa
Rb50<-valRetiro2/50000
si(b50>=Rb50)
valRetiro2<-valRetiro2 - 50000*Rb50
Sino
si(b50>1)
valRetiro2<-valRetiro2 - 50000*b50
FinSi
FinSi
Rb20<-valRetiro2/20000
si(b20>=Rb20)
valRetiro2<-valRetiro2 - 20000*Rb20
Sino
si(b20>0)
valRetiro2<-valRetiro2 - 20000*b20
FinSi
FinSi
Rb10<-valRetiro2/10000
si(b10>=Rb10)
valRetiro2<-valRetiro2 - 10000*Rb10
Sino
si(b10>0)
valRetiro2<-valRetiro2 - 10000*b10
FinSi
FinSi
//Este es el proceso real que entregar la respuesta
//Se realizar si en el proceso anterior indic que no qued sobrando +- saldo
si(valRetiro2=0)
Escribir "Retiro: "
Rb50<-valRetiro/50000
si(b50>=Rb50 y Rb50<>0)
valRetiro<-valRetiro - 50000*Rb50
Escribir Rb50 "x $50.000"
Sino
si(b50>1 y Rb50<>0)
valRetiro<-valRetiro - 50000*b50
Escribir b50 "x $50.000"
FinSi
FinSi
Rb20<-valRetiro/20000
si(b20>=Rb20 y Rb20<>0)
valRetiro<-valRetiro - 20000*Rb20
Escribir Rb20 "x $20.000"
Sino
si(b20>0 y Rb20<>0 )
valRetiro<-valRetiro - 20000*b20
Escribir b20 "x $20.000"
FinSi
FinSi
Rb10<-valRetiro/10000
si(b10>=Rb10 y Rb10<>0)
valRetiro<-valRetiro - 10000*Rb10
Escribir Rb10 "x $10.000"
Sino
si(b10>1 y Rb10<>0)
valRetiro<-valRetiro - 10000*b10
Escribir b10 "x $10.000"
FinSi
FinSi
Sino
//Si al Hacer el proceso con valRetiro2 qued un valor distinto de 0
//Eso indica que el cajero no podr entregar esa suma exacta con los billetes que tiene
Escribir "Los sentimos, no se cuenta con las cantidades necesarias para entregar esa suma"
FinSi
Escribir " "
Escribir "Digite el numero (1) si desea salir del programa"
Escribir "De lo contrario presione solo (Enter)"
Leer op
Hasta Que (op=1) //Termina el ciclo y el programa si digitan el numero 1
FinProceso
Proceso Cajero_Automatico
Definir b50,b20,b10 como entero
Definir valRetiro,valRetiro2, montoCajero como entero
Definir Rb50, Rb20, Rb10 como entero
Definir sw como entero
definir op Como Entero
Repetir
Repetir
Repetir
Limpiar Pantalla
Escribir "Cuantos billetes de $50.000 tiene el cajero"
Leer b50
Escribir "Cuantos billetes de $20.000 tiene el cajero"
Leer b20
Escribir "Cuantos billetes de $10.000 tiene el cajero"
Leer b10
si(b50<0 o b20<0 o b10<0)
Escribir "Debe ingresar una cantidad correcta"
Escribir "Presiones cualquier tecla para continuar"
esperar tecla
FinSi
Hasta Que (b50>=0 o b20>=0 o b10>=0)
MontoCajero<-50000*b50 + 20000*b20 + 10000*b10
Escribir "Ingrese cantidad a retirar"
Leer valRetiro
sw<-0
Si(valRetiro>600000)
Escribir "Solo puede retirar un mximo de $600.000"
sw<-1
Sino
si(valRetiro > montoCajero)
Escribir "Lo sentimos, Fondos insuficientes"
sw<-1
Sino
si((valRetiro Mod 10000)<>0)
Escribir "Solo puede retirar una cantidad multiplo de $10.000"
sw<-1
Sino
si(ValRetiro<10000)
Escribir "Solo puede retirar una cantidad superior a $10.000"
sw<-1
FinSi
FinSi
FinSi
FinSi
si(sw=1)
Escribir "Presiones una tecla para continuar"
Esperar Tecla
FinSi
Hasta Que (sw=0)
valRetiro2<-valRetiro
Rb50<-valRetiro2/50000
si(b50>=Rb50)
valRetiro2<-valRetiro2 - 50000*Rb50
Sino
si(b50>1)
valRetiro2<-valRetiro2 - 50000*b50
FinSi
FinSi
Rb20<-valRetiro2/20000
si(b20>=Rb20)
valRetiro2<-valRetiro2 - 20000*Rb20
Sino
si(b20>0)
valRetiro2<-valRetiro2 - 20000*b20
FinSi
FinSi
Rb10<-valRetiro2/10000
si(b10>=Rb10)
valRetiro2<-valRetiro2 - 10000*Rb10
Sino
si(b10>0)
valRetiro2<-valRetiro2 - 10000*b10
FinSi
FinSi
si(valRetiro2=0)
Escribir "Retiro: "
Rb50<-valRetiro/50000
si(b50>=Rb50 y Rb50<>0)
valRetiro<-valRetiro - 50000*Rb50
Escribir Rb50 "x $50.000"
Sino
si(b50>1 y Rb50<>0)
valRetiro<-valRetiro - 50000*b50
Escribir b50 "x $50.000"
FinSi
FinSi
Rb20<-valRetiro/20000
si(b20>=Rb20 y Rb20<>0)
valRetiro<-valRetiro - 20000*Rb20
Escribir Rb20 "x $20.000"
Sino
si(b20>0 y Rb20<>0 )
valRetiro<-valRetiro - 20000*b20
Escribir b20 "x $20.000"
FinSi
FinSi
Rb10<-valRetiro/10000
si(b10>=Rb10 y Rb10<>0)
valRetiro<-valRetiro - 10000*Rb10
Escribir Rb10 "x $10.000"
Sino
si(b10>1 y Rb10<>0)
valRetiro<-valRetiro - 10000*b10
Escribir b10 "x $10.000"
FinSi
FinSi
Sino
Escribir "Los sentimos, no se cuenta con las cantidades necesarias para entregar esa suma"
FinSi
Escribir " "
Escribir "Digite el numero (1) si desea salir del programa"
Escribir "De lo contrario presione solo (Enter)"
Leer op
Lazos Repetir La instruccin Repetir-Hasta Que ejecuta una secuencia de instrucciones hasta que la condicin sea verdadera.
Repetir
<instrucciones>
Hasta Que <condicin>
Al ejecutarse esta instruccin, la secuencia de instrucciones que forma el cuerpo del ciclo se ejecuta una vez y luego se evala la condicin. Si la
condicin es falsa, el cuerpo del ciclo se ejecuta nuevamente y se vuelve a evaluar la condicin. Esto se repite hasta que la condicin sea verdadera.
Note que, dado que la condicin se evala al final, las instrucciones del cuerpo del ciclo sern ejecutadas al menos una vez.
Adems, a fin de evitar ciclos infinitos, el cuerpo del ciclo debe contener alguna instruccin que modifique la o las variables involucradas en la condicin
de modo que en algn momento la condicin sea verdadera y se finalice la ejecucin del ciclo.
Las variables: Cuando nos referimos a variables nos referimos a lugares de memoria en los cuales se almacena algn tipo de informacin, por
ejemplo el numero de gallinas, la altura, la edad, el nombre y el peso. Existen diferentes tipos de datos tal y como se muestra en la siguiente tabla:
Tipo de dato
Descripcin
Ejemplo
entero
real
lgicos
alfanumricos
Esas dos palabras, "primerNumero" y "segundoNumero" representan a nmeros que no tienen un valor prefijado. Eso es lo que
llamaremos "variables