Módulo 14 - Lógica aplicada no mundo real
O caixa eletrônico por dentro: portões que protegem dinheiro
9 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 02/07/2026
O que você vai aprender
- Desenhar o fluxo completo do caixa: senha, menu, operação e encerramento.
- Escrever o bloqueio de senha após 3 tentativas com laço e contador.
- Encadear as validações do saque na ordem que protege o saldo.
- Encontrar um bug real numa condição de saque invertida.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: O caixa eletrônico por dentro: portões que protegem dinheiro.
Os objetivos desta aula. Desenhar o fluxo completo do caixa: senha, menu, operação e encerramento. Escrever o bloqueio de senha após 3 tentativas com laço e contador. Encadear as validações do saque na ordem que protege o saldo. Encontrar um bug real numa condição de saque invertida.
Veja o essencial, parte por parte.
O fluxo por trás da tela. O caixa eletrônico é uma sequência de portões: senha primeiro, menu depois, conferências antes de cada operação.
A senha com três tentativas e o saque protegido. O primeiro portão é a senha, e ele junta dois padrões seus: o laço de validação da primeira aula e o contador do módulo 9.
O menu que gira até a pessoa ir embora. Depois do portão da senha, o caixa vira um menu em laço.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
O fluxo por trás da tela
Lá no módulo 1, você ordenou os passos de um saque num jogo e descobriu que alguns passos existem para proteger os seguintes. Este é o dia de abrir a máquina inteira. O caixa eletrônico é o exemplo perfeito de sistema do mundo real: cada tela que você vê na agência é um bloco de lógica que você já sabe escrever. A senha é um laço de validação com limite; o menu é a escolha de caminhos do módulo 8 girando dentro de um laço; o saque é uma cadeia de decisões protegendo uma variável chamada saldo.
Repare no diagrama como NENHUMA seta pula um losango. Não existe caminho da entrada do cartão direto para a entrega do dinheiro: toda rota passa pela senha e pela conferência de saldo. Essa disciplina tem nome no mundo profissional: defesa em profundidade, camadas de conferência em sequência. Se uma falhar, a próxima segura. É o mesmo raciocínio do validador da primeira aula, agora com consequências que se medem em dinheiro.
A senha com três tentativas e o saque protegido
O primeiro portão é a senha, e ele junta dois padrões seus: o laço de validação da primeira aula e o contador do módulo 9. A diferença em relação ao validador de idade é que aqui o laço tem um limite: três erros e o cartão bloqueia. A condição do ENQUANTO carrega as duas exigências de uma vez, com o operador E do módulo 7: continua pedindo senha enquanto houver tentativa sobrando E o acesso ainda não foi liberado.
tentativas <- 0
acesso <- falso
enquanto tentativas < 3 e acesso = falso faça
escreva("Digite a senha:")
leia(senha)
se senha = senhaSalva então
acesso <- verdadeiro
senão
tentativas <- tentativas + 1
escreva("Senha incorreta.")
fim
fim
se acesso = falso então
escreva("Cartão bloqueado. Procure a sua agência.")
fim
// Errando duas vezes e acertando na terceira, acesso vira
// verdadeiro com tentativas = 2 e o menu abre normalmente.O portão da senha: o laço termina por acerto OU por esgotamento das três tentativas.
🎮 Jogo da aula
O saque que quebraria o banco
Este trecho deveria sacar somente quando há saldo suficiente. Uma linha inverte tudo e faz o caixa entregar dinheiro que não existe. Toque na linha com o bug.
O jogo mostra por que o teste de mesa do módulo 13 não é luxo. Lendo rápido, o código do saque parece certo: tem SE, tem saldo, tem mensagem. Só a simulação com números concretos (saldo 100, saque 500) revela a inversão: o programa entregaria 500 e deixaria a conta em -400. Nos sistemas reais, toda alteração de saldo passa por revisão de outra pessoa e por testes automáticos exatamente por isso: dinheiro não perdoa condição invertida.
Perguntas frequentes
- Por que o limite clássico é de 3 tentativas de senha?
- É um equilíbrio entre segurança e paciência: três erros são raros para o dono do cartão distraído e poucos para quem tenta adivinhar a senha na força bruta. O número exato varia por banco, mas o padrão lógico é o mesmo: laço com contador e bloqueio ao estourar o limite.
- O caixa de verdade é programado assim, em meia página?
- O esqueleto lógico é este, sim: portões em sequência, menu em laço, conferência antes da ação. O sistema real acrescenta camadas que fogem do escopo do curso: comunicação criptografada com o banco, controle do hardware que conta cédulas, registros de auditoria. A lógica que você escreveu é a espinha dorsal de tudo isso.
- O que impede o programa de aceitar um saque de valor negativo?
- A validação de entrada, de novo. Um saque de -100 passaria na conferência de saldo (é menor que qualquer saldo positivo) e SOMARIA dinheiro à conta na subtração, porque subtrair um negativo é somar. Por isso o saque confere duas coisas: valor maior que zero E saldo suficiente.
- Por que usar funções para as opções do menu?
- Para o programa principal caber nos olhos: um menu com o código de cada operação escrito por extenso vira um paredão ilegível. Com sacar() e depositar() separados, cada bloco se testa sozinho e o menu vira um índice. É a divisão de responsabilidades do módulo 12 aplicada num sistema de verdade.
- O que acontece se a pessoa digitar uma letra em vez do número da opção?
- No pseudocódigo do curso, assumimos entrada numérica; nas linguagens reais, a leitura precisa validar o tipo antes de comparar, exatamente como a primeira aula deste módulo mostrou. A regra não muda: dado de fora se confere antes de usar, inclusive o número do menu.
- Esse padrão de menu serve para outros programas?
- Serve para quase todo sistema interativo de texto: cadastros, agendas, controles de estoque, jogos com telas. O trio “laço até sair, escada de opções, função por operação” é um dos esqueletos mais reaproveitados da programação, e o projeto final do módulo 16 usa exatamente ele.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.