Diagrama de Flujo del Cajero Automático

Clase 22 de 37Curso Básico de Programación

Contenido del curso

Resumen

Un diagrama de flujo nos permite hacer una representación de los pasos que debe seguir nuestro algoritmo. En el siguiente ejemplo, vamos a crear un algoritmo para un cajero cajero automático.

Nuestro objetivo es entregar la menor cantidad de billetes posibles a partir de la cantidad que se solicite.

En este ejemplo, vamos a ver el código para resolver el problema:

class billete { constructor(v, c) { this.valor = v; this.cantidad = c; } } function entregarBillete() { var t = document.getElementById("dinero"); dinero = parseInt(t.value); entregado.length = 0; for(var bill of caja) { if (dinero > 0) { div = Math.floor(dinero / bill.valor); if (div > bill.cantidad) { papeles = bill.cantidad; } else { papeles = div; } entregado.push( new billete(bill.valor, papeles) ); dinero = dinero - (bill.valor * papeles); } } if (dinero > 0) { resultado.innerHTML = "No puedo darte esa cantidad"; } else { for(var e of entregado) { if(e.cantidad > 0) { resultado.innerHTML += e.cantidad + " billetes de $" + e.valor + "<br>"; } } } } function limpiarPantalla() { resultado.innerHTML = " "; } var caja = []; var entregado = []; caja.push(new billete(100, 5)); caja.push(new billete(50, 5)); caja.push(new billete(20, 10)); caja.push(new billete(10, 10)); caja.push(new billete(5, 10)); var dinero = 0; var div = 0; var papeles = 0; var resultado = document.getElementById("resultado"); var b = document.getElementById("extraer"); b.addEventListener("click", entregarBillete); var l = document.getElementById("limpiar"); l.addEventListener("click", limpiarPantalla);

Recuerda:

  • Intenta probar tu algoritmo para varios escenarios posibles.
  • No existe una forma única de resolver un problema en programación.

Contribución creada por: Juan Pérez López, Brayan Mamani, Danny Richarson.