ATM
Checks your PIN and lets you check, deposit and withdraw money.
- Level
- Advanced
- Topic:
- Projects
- Concepts:
- Input & output
- Repetir
- Segun
- Si
- Logic
Run, change and debug this example in your browser.
What you'll learn
A Repetir loop with three tries guards access using a Logico variable. Then a Segun menu updates the balance and uses MOD to accept only multiples of 100.
Code
Algoritmo CajeroAutomatico Definir saldo Como Real Definir opcion, intentos, monto Como Entero Definir pin Como Caracter Definir acceso Como Logico saldo <- 5000 intentos <- 0 acceso <- Falso Repetir Escribir "Ingrese su PIN:" Leer pin intentos <- intentos + 1 Si pin = "1234" Entonces acceso <- Verdadero SiNo Si intentos < 3 Entonces Escribir "PIN incorrecto. Le quedan ", 3 - intentos, " intentos." FinSi FinSi Hasta Que acceso O intentos = 3 Si NO acceso Entonces Escribir "Tarjeta bloqueada. Comuníquese con su banco." SiNo Repetir Escribir "" Escribir "1. Consultar saldo 2. Depositar 3. Retirar 4. Salir" Leer opcion Segun opcion Hacer 1: Escribir "Saldo disponible: $", saldo 2: Escribir "Monto a depositar:" Leer monto Si monto > 0 Entonces saldo <- saldo + monto Escribir "Depósito realizado. Nuevo saldo: $", saldo SiNo Escribir "El monto debe ser positivo." FinSi 3: Escribir "Monto a retirar (múltiplos de 100):" Leer monto Si monto MOD 100 <> 0 Entonces Escribir "El cajero solo entrega billetes de 100." SiNo Si monto > saldo Entonces Escribir "Fondos insuficientes." SiNo saldo <- saldo - monto Escribir "Retire su dinero. Nuevo saldo: $", saldo FinSi FinSi 4: Escribir "Gracias por usar el cajero." De Otro Modo: Escribir "Opción no válida." FinSegun Hasta Que opcion = 4 FinSiFinAlgoritmoFlowchart
Each block in the flowchart matches one instruction in the code.
Sample run
This is what the program shows when it runs. The answers typed by the user are highlighted.
Ingrese su PIN:User answer: 1111PIN incorrecto. Le quedan 2 intentos.Ingrese su PIN:User answer: 1234 1. Consultar saldo 2. Depositar 3. Retirar 4. SalirUser answer: 1Saldo disponible: $5000 1. Consultar saldo 2. Depositar 3. Retirar 4. SalirUser answer: 2Monto a depositar:User answer: 1500Depósito realizado. Nuevo saldo: $6500 1. Consultar saldo 2. Depositar 3. Retirar 4. SalirUser answer: 3Monto a retirar (múltiplos de 100):User answer: 2250El cajero solo entrega billetes de 100. 1. Consultar saldo 2. Depositar 3. Retirar 4. SalirUser answer: 3Monto a retirar (múltiplos de 100):User answer: 2000Retire su dinero. Nuevo saldo: $4500 1. Consultar saldo 2. Depositar 3. Retirar 4. SalirUser answer: 1Saldo disponible: $4500 1. Consultar saldo 2. Depositar 3. Retirar 4. SalirUser answer: 4Gracias por usar el cajero.
Challenge
Limit withdrawals to at most $3000 per transaction.
Show hint
Add another condition in case 3, before checking whether there are enough funds.
Related examples
Contact Book
Add, list and search contacts in a book that grows.
AdvancedShell Sort
Insertion sort between far-apart elements, with a gap that shrinks every pass.
AdvancedQuicksort
Picks a pivot, splits smaller from larger values and sorts each side recursively.
Advanced