Módulo 5 - Contas dentro do algoritmo

Expressões que misturam tudo: do problema em português à fórmula que funciona

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

O que você vai aprender

  • Traduzir um problema em português para uma expressão aritmética.
  • Aplicar o método dos 4 passos: dados, nomes, expressão e teste.
  • Calcular porcentagens com os operadores que você já tem: valor * 10 / 100.
  • Validar uma fórmula testando com números fáceis de conferir.

Traduzir é a palavra certa

Até aqui as aulas entregaram a expressão pronta e pediram o resultado. A vida real inverte o jogo: o problema chega em português (“divida a conta com a taxa de serviço entre os amigos”) e a expressão é você quem escreve. Essa tradução é a habilidade que separa quem faz curso de quem resolve problema, e ela tem método. Não é dom: é um caminho de quatro passos que você repete até virar reflexo, exatamente como fez com as instruções claras do módulo 1.

  1. Liste os dados do problema: o que eu sei? (total da conta, número de pessoas, percentual da taxa)
  2. Dê a cada dado uma variável com nome que se explica: total, pessoas, taxa.
  3. Monte a expressão com os operadores, usando parênteses para impor a ordem do problema.
  4. Teste com números fáceis: invente um caso que você resolve de cabeça e confira se a fórmula chega no mesmo lugar.

O passo 4 merece defesa antes de você se sentir tentado a pulá-lo. Uma fórmula errada não avisa: roda, devolve número e segue o baile, como a média 11 da aula passada. O único alarme disponível é a comparação com um resultado que você conhece. Conta de 100 reais, 10% de taxa, 2 pessoas: de cabeça, 110 dividido por 2 dá 55 para cada. Se a sua expressão devolver outra coisa com esses números, o bug apareceu antes de causar dano. Teste barato, proteção enorme.

A conta do restaurante, linha por linha

Vamos executar o método completo no problema mais brasileiro que existe: fechar a conta da mesa. O consumo deu 180 reais, a casa cobra 10% de serviço e a mesa tem 4 pessoas. Dados listados, nomes dados, agora a expressão. Dá para escrever tudo numa linha só, mas repare como a versão em passos nomeados abaixo se explica sozinha: cada linha responde uma pergunta pequena, e o teste de mesa fica trivial.

leia(total)
leia(pessoas)
servico <- total * 10 / 100
// com total 180: 18
conta_final <- total + servico
// 180 + 18 = 198
por_pessoa <- conta_final / pessoas
// 198 / 4 = 49,5
escreva(por_pessoa)
// a tela mostra: 49,5

O método dos 4 passos aplicado: cada linha é uma pergunta pequena respondida.

🎮 Jogo da aula

Monte o algoritmo da mesa

Os passos do algoritmo que divide a conta do restaurante foram embaralhados. Toque na ordem correta, do primeiro ao último.

    Mais dois exemplos rápidos para o seu repertório de traduções. Desconto de 25% numa peça de 80 reais: preco_final <- preco - preco * 25 / 100, que dá 60. Média ponderada da escola, em que a prova vale peso 3 e o trabalho vale peso 2: media <- (prova * 3 + trabalho * 2) / 5. Repare nos parênteses da média: sem eles, a divisão por 5 atingiria só o trabalho * 2, e o boletim voltaria a mentir. Precedência e tradução andam sempre juntas.

    O teste que pega a fórmula errada

    Fórmula montada não é fórmula pronta: é fórmula candidata. A promoção acontece no teste com números conhecidos, e a escolha dos números é uma pequena arte. Prefira valores que tornam a conta de cabeça imediata: total 100 (porcentagens viram leitura direta), 2 pessoas (dividir por 2 qualquer um confere), notas 10 e 10 (média tem que dar 10). Se a média ponderada de duas notas 10 devolver 12, você achou o bug em dez segundos, sem depurador, sem sofrimento.

    Teste rápido

    Uma loja dá 20% de desconto num produto de preco reais. Qual expressão devolve o preço final?

    Perguntas frequentes

    Devo escrever a expressão numa linha só ou quebrar em passos?
    As duas formas dão o mesmo resultado; a diferença é manutenção. Passos nomeados (servico, conta_final, por_pessoa) se explicam sozinhos e facilitam o teste de mesa, então o curso prefere assim. A linha única tem lugar quando a conta é curta e o nome da variável de destino já conta a história.
    Como calculo porcentagem se não existe operador de %?
    Traduzindo a definição: N% de um valor é valor * N / 100. Acréscimo de N% é valor + valor * N / 100; desconto é com menos. O símbolo % existe em linguagens reais, mas lá ele é o operador de RESTO (o nosso mod), o que confunde muita gente. No pseudocódigo evitamos a armadilha escrevendo a conta por extenso.
    E se o problema tiver dados que eu não conheço ainda?
    É o caso normal: total e pessoas chegam pelo leia, como no módulo 4. A expressão não precisa dos valores para ser escrita, só dos nomes. Essa é a graça da variável: você projeta a conta uma vez e ela funciona para qualquer mesa, qualquer conta e qualquer número de amigos.
    Testar com números fáceis não é trapaça? O programa vai rodar com números difíceis.
    A fórmula não sabe se o número é fácil: os passos são os mesmos para 100 e para 187,43. O teste fácil confere a ESTRUTURA da expressão (ordem, parênteses, operadores), que é onde moram os bugs. Números difíceis só dificultam a SUA conferência, sem testar nada a mais. Casos extremos, como zero pessoas, são outro tipo de teste, que o módulo 13 formaliza.
    Existe expressão certa única para cada problema?
    Não. preco - preco * 20 / 100 e preco * 80 / 100 devolvem o mesmo preço final, por caminhos diferentes. As duas passam no teste dos números fáceis, e as duas estão certas. Entre versões corretas, escolha a que um colega entenderia mais rápido: código se escreve uma vez e se lê muitas.
    Quando entra o resto (mod) nessas traduções?
    Quando o problema pergunta por sobra, ciclo ou divisibilidade. Dividir a conta é /, empacotar ovos é div, e saber quantos ovos ficam de fora é mod. A próxima aula é inteira sobre as traduções que só o mod resolve: par ou ímpar, troco em notas, rodízio de placas e ciclos de calendário.

    Fontes

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