Módulo 4 - Entrada e saída, a conversa com o programa

A entrada vira cálculo: o programa trabalha para você

9 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 02/07/2026

O que você vai aprender

  • Ler valores com LEIA e usá-los em contas com atribuição.
  • Respeitar a ordem obrigatória: ler primeiro, calcular depois, mostrar por último.
  • Usar o eco da entrada para a pessoa conferir o que o programa entendeu.
  • Prever a saída de um programa que mistura leitura, cálculo e escrita.

O circuito completo: ler, calcular, mostrar

Junte as peças dos módulos 3 e 4 e o programa ganha utilidade de verdade. O LEIA traz números do mundo real para dentro das variáveis; a atribuição faz a conta e guarda o resultado numa variável nova; o ESCREVA devolve a resposta para quem perguntou. É o circuito entrada, processamento e saída rodando completo pela primeira vez nas suas mãos. O exemplo clássico do balcão brasileiro: o cliente compra pão, paga com uma nota, e alguém precisa dizer o troco na hora, sem errar.

escreva("Qual o valor da compra?")
leia(preco)
escreva("Quanto o cliente pagou?")
leia(pago)
troco <- pago - preco
escreva("Troco: ", troco, " reais")
// se a pessoa digitar 42 e 50, a saída é:
// Troco: 8 reais

A calculadora de troco: duas leituras, uma conta, uma resposta.

Leia o programa de cima para baixo, como a máquina: primeiro os dois avisos com as duas leituras, que enchem as caixinhas preco e pago; depois a linha do processamento, que subtrai e guarda o resultado em troco; por fim o ESCREVA que monta a mensagem com o valor calculado. Cada linha depende das anteriores. Essa dependência não é frescura de professor: é a estrutura lógica do problema. Não existe troco antes de saber o preço e o pagamento, nem na padaria nem no pseudocódigo.

A ordem decide tudo (de novo, e agora dói mais)

No módulo 1, instruções fora de ordem eram uma curiosidade do café. Aqui elas viram prejuízo. Imagine a linha troco <- pago - preco colocada ANTES dos LEIA: o computador, literal como sempre, faz a subtração com o que as variáveis tiverem naquele momento, ou seja, com nada de útil, e guarda um resultado sem sentido. Depois, quando os valores certos chegarem, ninguém refaz a conta sozinho: o troco errado fica lá, congelado, esperando o ESCREVA final espalhar o estrago na tela.

🎮 Jogo da aula

A padaria informatizada

O cliente digita 6 quando o programa pergunta. Siga as linhas na ordem, faça a conta e escolha a saída final.

escreva("Quantos pães você quer?")
leia(quantidade)
// o cliente digita 6
total <- quantidade * 2
escreva("Total: ", total, " reais")

Repare num detalhe do jogo que costuma passar batido: a tela mostra 12, não a expressão quantidade * 2. A atribuição resolve a conta na hora e guarda só o resultado, como você viu no módulo 3. O ESCREVA, por sua vez, mostra o que está na caixinha. Essa divisão de trabalho é limpa: a conta mora numa linha, a apresentação mora em outra. No módulo 5 as contas ficam mais interessantes, com resto de divisão e ordem das operações, mas o esqueleto do programa continua este.

O eco da entrada: confiança se constrói mostrando

Atendente bom de balcão repete o pedido antes de bater: “seis pães e um leite, certo?”. Esse hábito tem versão em pseudocódigo e se chama eco da entrada: logo depois de ler os valores, o programa os mostra de volta, dando à pessoa a chance de perceber que digitou 500 no lugar de 50. Custa uma linha de ESCREVA e evita a pior categoria de erro que existe: a conta perfeita feita em cima de um dado errado, que produz um resultado errado com cara de certo.

escreva("Qual o valor da compra?")
leia(preco)
escreva("Quanto o cliente pagou?")
leia(pago)
escreva("Conferindo: compra de ", preco, ", pago ", pago)
troco <- pago - preco
escreva("Troco: ", troco, " reais")

O eco entra entre a leitura e a conta: a pessoa confere antes de o resultado sair.

  1. Leia os valores com os avisos claros.
  2. Ecoe o que foi lido numa frase de conferência.
  3. Calcule com atribuição, depois das leituras.
  4. Mostre o resultado numa mensagem completa, com contexto e unidade.

Teste rápido

Num programa de troco, a linha troco <- pago - preco foi colocada antes dos dois LEIA. O que acontece?

Perguntas frequentes

Por que a tela mostra 12 e não a conta quantidade * 2?
Porque a atribuição resolve a expressão no momento em que executa e guarda apenas o resultado na variável. Quando o ESCREVA chega, a caixinha total já contém 12. Expressão é receita; a variável guarda o bolo pronto.
Posso fazer a conta dentro do próprio ESCREVA?
Em muitas linguagens dá, mas neste curso a regra é separar: a conta mora numa linha de atribuição e o ESCREVA só apresenta. Essa separação deixa o programa mais fácil de ler e de testar, e é o estilo que os módulos seguintes vão assumir.
E se a pessoa pagar menos que o valor da compra?
Com o que você sabe até aqui, o programa calcula um troco negativo e mostra, o que não faz sentido no balcão. Detectar essa situação e responder “falta dinheiro” exige uma decisão com SE, o assunto do módulo 8. Anote o caso: ele volta lá como exercício.
O eco da entrada não deixa o programa chato e comprido?
Uma linha de conferência raramente incomoda, e salva o resultado quando o dedo escorrega no teclado. Em programas grandes, o eco costuma aparecer em resumos de confirmação, como a tela “revise seu pedido” dos aplicativos de comida. O princípio é o mesmo: mostrar antes de agir.
Preciso decorar o padrão ler, calcular, mostrar?
Não precisa decorar: precisa reconhecer. Ele é a espinha de quase todo programa pequeno, da calculadora de média à de troco. Depois de montar dois ou três, a sequência vira reflexo, do mesmo jeito que ninguém decora a ordem “molhar, ensaboar, enxaguar”.
O que acontece se a pessoa digitar texto onde o programa espera número?
A conta seguinte não tem como funcionar, e cada linguagem reage de um jeito: umas travam com erro, outras produzem resultado estranho. A defesa é validar a entrada antes de calcular, tema do módulo 14. Por enquanto, os exercícios do curso garantem entradas bem comportadas.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.