1
resposta

Desafio: Calculadora de despesas - Wagner Feitosa

Para esse desafio vamos considerar somente os números como base de dados, o algoritmo não se liga de teremos 10 ou 100 tipos de despesas.

• O nosso banco de dados será personalizado e único para cada cliente
• O cliente é responsável por alimentar os dados do sistema
• A divisão do sistema será por colunas, Despesa, valor gasto, forma de pagamento
• O algoritmo será alimentado pela coluna valor gasto e mais nada
• Cada linha suportará somente um valor
• O algoritmo somará no sentido inicial, da última para a primeira linha, sempre e sem exceções
• A coluna “Valor gasto” só aceita caracteres em formato de número
• Cada linha que contenha algum número será somada automaticamente as linhas anteriores
• Caso a última linha não contenha nada será considerado “0” e deverá imprimir a soma total

Processo em Linguagem natural:

• Cliente preenche coluna
• Algoritmo recebe dados
• Ao identificar a última coluna vazia
• Algoritmo entende que vazio=0
• Soma todos os valores
• Imprime a Soma

1 resposta

Olá, Wagner. Como vai?

Excelente estruturação do desafio! Você aplicou conceitos muito importantes de Pensamento Computacional, como a Abstração (ao focar apenas nos números e ignorar as descrições das despesas) e a Algoritmização (ao definir um fluxo claro de início, meio e fim).

Sua ideia de somar "de baixo para cima" até encontrar um valor vazio é uma lógica de controle de fluxo muito interessante. Para ajudar na visualização desse processo, podemos pensar nele como uma pilha de dados que o computador processa sequencialmente.

Aqui estão alguns pontos técnicos para agregar valor ao seu projeto:

1. A lógica da "Sentinela"
Em computação, esse valor vazio ou o "0" que você definiu para encerrar a soma é chamado de sentinela. É uma condição de parada que diz ao algoritmo: "não há mais dados para processar".

2. Tradução para Lógica de Programação
Embora você tenha definido que a soma ocorre da última para a primeira linha, na prática da programação costumamos percorrer a lista do início ao fim ou usar uma estrutura de repetição que acumula os valores conforme eles entram. Veja como seria o raciocínio:

soma_total = 0
Enquanto (valor_recebido nao for vazio):
    Ler valor_recebido
    Se valor_recebido for numero:
        soma_total = soma_total + valor_recebido
    Senao se valor_recebido for vazio:
        valor_recebido = 0
        Interromper Ciclo (Break)

Imprimir soma_total

Dicas de Boas Práticas e Refinamento:

  • Validação de Dados: Como você especificou que a coluna só aceita números, é importante que o algoritmo tenha um tratamento de erro. Caso o cliente digite uma letra por engano, o sistema deve avisar que o formato é inválido antes de tentar somar.
  • Eficiência: O fato de o algoritmo não se importar se são 10 ou 100 despesas mostra que sua solução é escalável. Isso é fundamental no desenvolvimento de software profissional.
  • Sentido da Soma: Na maioria das linguagens, percorrer de cima para baixo ou de baixo para cima não altera o resultado final da soma (propriedade comutativa), mas a sua escolha de começar pela última linha pode ser muito útil se o sistema precisar priorizar lançamentos mais recentes em uma atualização futura.

Sua descrição em linguagem natural está pronta para ser transformada em código real, pois os critérios de parada e as regras de entrada estão muito bem delimitados!

Espero que possa ter lhe ajudado!