Módulo 16 - Projeto final, pensando como programador
Parte 3: o relatório que transforma números em decisão
9 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 02/07/2026
O que você vai aprender
- Separar o que roda dentro do laço de leitura do que roda depois dele.
- Calcular o percentual de cada categoria sobre o total geral.
- Descobrir a categoria campeã com comparações encadeadas.
- Montar o programa completo, juntando as três partes testadas.
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: Parte 3: o relatório que transforma números em decisão.
Os objetivos desta aula. Separar o que roda dentro do laço de leitura do que roda depois dele. Calcular o percentual de cada categoria sobre o total geral. Descobrir a categoria campeã com comparações encadeadas. Montar o programa completo, juntando as três partes testadas.
Veja o essencial, parte por parte.
Dentro do laço se coleta; depois do laço se conta. O relatório roda DEPOIS do laço de leitura, quando todos os acumuladores já têm os valores finais.
Percentuais, a campeã e o alerta. O percentual usa a aritmética do módulo 5: divide a parte pelo todo e multiplica por 100.
A montagem final: o organizador inteiro. Registre 3 despesas: 1200 na categoria 1, 300 na categoria 2 e 200 na categoria 2.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
Dentro do laço se coleta; depois do laço se conta
Existe uma fronteira invisível no meio de todo programa com laço, e o projeto torna essa fronteira concreta: o fim do laço de leitura. Antes dele, o programa está coletando: lê, valida, soma. Depois dele, está contando a história: os acumuladores pararam de mudar e viraram fatos consumados. Calcular um percentual DENTRO do laço seria fotografar uma corrida antes da chegada; o número até existe, mas não representa o resultado. Todo o relatório mora depois da linha final do enquanto, e essa decisão de posição vale mais que qualquer fórmula da aula.
O que um bom relatório mostra? O requisito da aula 1 responde: os quatro totais formatados em reais, o total geral, o percentual de cada categoria e dois extras que transformam número em decisão: a categoria campeã de gastos e um alerta quando alguma passa da metade do orçamento. Repare no salto de qualidade: “você gastou 1700 reais” informa; “70% do seu gasto foi moradia” orienta. A diferença entre os dois é meia dúzia de linhas de lógica, e é essa meia dúzia que separa um programa que imprime números de um programa que ajuda alguém.
🎮 Jogo da aula
Antes ou depois da chegada?
Cada tarefa do organizador pertence a um lado da fronteira. Classifique: ela roda dentro do laço de leitura ou depois dele, no relatório?
Percentuais, a campeã e o alerta
O percentual usa a aritmética do módulo 5: divide a parte pelo todo e multiplica por 100. Com totalMoradia valendo 1200 e totalGeral valendo 1700, a conta (1200 / 1700) * 100 dá aproximadamente 70,6. Um cuidado herdado do módulo 13: se o programa permitisse zero despesas, totalGeral poderia valer zero e a divisão explodiria. A validação da parte 1 (quantidade >= 1, valor > 0) garante totalGeral maior que zero, e é bonito ver uma decisão tomada três aulas atrás protegendo uma conta feita agora.
percentualMoradia <- (totalMoradia / totalGeral) * 100
escreva("Moradia: R$ ", totalMoradia, " (", percentualMoradia, "%)")
// Exemplo com totalMoradia = 1200 e totalGeral = 1700:
// Moradia: R$ 1200 (70.6%)
se totalMoradia > totalGeral * 0.5 então
escreva("Atenção: moradia passou da metade dos seus gastos.")
fimPercentual e alerta: a mesma conta se repete para as outras três categorias.
Para a categoria campeã, o raciocínio é o do maior valor do módulo 11, aplicado a quatro variáveis: comece assumindo que a campeã é moradia e guarde o total dela em maiorTotal. Depois compare com alimentação: se totalAlimentacao > maiorTotal, a campeã muda e maiorTotal é atualizado. Repita para transporte e outros. Ao fim das três comparações, a variável campea guarda o nome certo, seja qual for a ordem dos valores. É um torneio de tênis em quatro linhas: o vencedor de cada comparação enfrenta o próximo desafiante.
campea <- "moradia"
maiorTotal <- totalMoradia
se totalAlimentacao > maiorTotal então
campea <- "alimentação"
maiorTotal <- totalAlimentacao
fim
se totalTransporte > maiorTotal então
campea <- "transporte"
maiorTotal <- totalTransporte
fim
se totalOutros > maiorTotal então
campea <- "outros"
maiorTotal <- totalOutros
fim
escreva("Categoria campeã: ", campea)
// Com 1200, 500, 0 e 0: Categoria campeã: moradiaO torneio do maior: cada categoria desafia a líder atual; quem vence assume a ponta.
A montagem final: o organizador inteiro
Hora de juntar as caixas etiquetadas. O esqueleto abaixo mostra o programa completo em forma condensada: a parte 1 dentro do laço PARA (que repete a leitura para cada despesa, como no módulo 10), a parte 2 logo depois das leituras e a parte 3 depois do fim do laço. Abra o Playground de Lógica, monte a versão completa com os trechos das três aulas e rode um teste de mesa com as despesas que você conhece de cor: 1200 em moradia, 300 e 200 em alimentação. O relatório esperado: moradia 70,6%, alimentação 29,4%, campeã moradia, alerta disparado.
// zera os 5 acumuladores (parte 2)
// lê e valida a quantidade (parte 1)
para i de 1 até quantidade faça
// lê e valida valor e categoria (parte 1)
// escada de SENÃO SE soma no cofrinho certo (parte 2)
// totalGeral <- totalGeral + valor (parte 2)
fim
// relatório: totais, percentuais, campeã e alerta (parte 3)
// Três partes, cada uma testada antes da montagemO esqueleto do organizador: o mapa da aula 1 virou estrutura de programa.
Pare um segundo e olhe para trás: no módulo 1 você classificava instruções vagas e claras. Hoje escreveu um programa com entrada validada, roteamento por decisão, acumuladores e relatório com percentuais. Isso é pensar como programador.
Teste rápido
Por que os percentuais do relatório são calculados DEPOIS do laço de leitura?
Perguntas frequentes
- Por que o alerta usa totalGeral * 0.5 em vez de comparar com o percentual?
- As duas formas são equivalentes: totalMoradia > totalGeral * 0.5 e percentualMoradia > 50 dizem a mesma coisa. A versão com multiplicação dispensa calcular o percentual antes do alerta. Escolha a que ficar mais legível no seu código e mantenha o padrão.
- E se duas categorias empatarem na liderança?
- Com as comparações usando > (estritamente maior), o empate mantém a líder que chegou primeiro na ordem do torneio: moradia vence empates contra todas, alimentação contra transporte e outros, e assim por diante. Se quiser anunciar o empate, compare os totais com = depois do torneio. É um refinamento clássico de projeto.
- O percentual pode dar um número quebrado feio, tipo 70.588235?
- Pode, porque a divisão raramente é exata. Em pseudocódigo basta anotar que o valor seria arredondado na exibição; linguagens reais têm funções prontas de arredondamento para uma casa decimal. O importante é arredondar só na EXIBIÇÃO, mantendo o valor cheio nas contas.
- Por que o programa usa PARA no laço principal e não ENQUANTO?
- Porque a quantidade de repetições é conhecida antes de começar: o usuário informou quantas despesas vai registrar. Quando o número de voltas é conhecido, o PARA do módulo 10 é a ferramenta natural. O ENQUANTO fica com as repetições de fim imprevisível, como os laços de validação.
- Como eu deixaria o relatório em ordem, da categoria que mais gastou para a que menos gastou?
- Ordenar quatro valores exige trocas comparadas, uma extensão do torneio do maior que fica trabalhosa com variáveis soltas. Com os totais numa lista (módulo 11), a ordenação vira um algoritmo clássico e elegante. É um desafio excelente para depois do certificado.
- O organizador poderia guardar as despesas para consultar depois?
- Sim: em vez de só acumular, você guardaria cada valor e categoria em listas (módulo 11) e poderia listar tudo no relatório, filtrar por categoria ou achar a maior despesa individual. O projeto base resume por totais de propósito, para manter o foco nas decisões e acumuladores.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.