2
respostas

[Sugestão] 05 - Calculando o tempo total de projeto

Camila está organizando um projeto e precisa calcular o tempo total necessário para concluir três atividades: A, B e C. No entanto, se alguma atividade tiver um número de dias negativo, o código deve avisar que os valores inseridos são inválidos e não calcular o total.

Escreva um programa que receba o número de dias de três atividades e exiba o tempo total do projeto. Se algum valor for negativo, mostre uma mensagem informando o erro.

lista = ['A', 'B', 'C']
dias = 0

for i in lista:
    atividade = int(input(f'Informe os dias para a atividade {i}: '))
    if atividade < 0:
        print('Valor inválido. Por favor, insira um número positivo de dias.')
    else:
        print(f'Atividade {i} registrada com {atividade} dias.')
        dias += atividade

print(f'O total de dias para concluir as atividades é: {dias}')
2 respostas

Olá, Malderson. Como vai?

Excelente iniciativa em compartilhar sua solução! Utilizar uma lista para iterar sobre as atividades A, B e C torna o código muito mais limpo e escalável do que criar variáveis isoladas para cada uma. Como consultor de TI, você sabe que a manutenibilidade do código é fundamental.

Analisando sua lógica, notei um ponto interessante para reflexão sobre o fluxo do programa: no seu código atual, se o usuário digitar um valor negativo para a atividade A, o sistema avisa que é inválido, mas continua pedindo os dias para B e C e, ao final, exibe a soma dos valores positivos.

De acordo com o enunciado, se algum valor for negativo, o código deve avisar que os valores são inválidos e não calcular o total. Para atingir esse comportamento de "parada total", podemos utilizar a palavra-chave break ou uma variável de controle.

Aqui está uma sugestão de melhoria implementando uma interrupção imediata:

lista = ['A', 'B', 'C']
dias = 0
valores_validos = True

for i in lista:
    atividade = int(input(f'Informe os dias para a atividade {i}: '))
    
    if atividade < 0:
        print('Valor inválido. Por favor, insira um número positivo de dias.')
        valores_validos = False
        break  # Interrompe o loop imediatamente
    else:
        print(f'Atividade {i} registrada com {atividade} dias.')
        dias += atividade

if valores_validos:
    print(f'O total de dias para concluir as atividades é: {dias}')

O que mudou e por que agrega valor:

  • Uso do break: Assim que o programa detecta um número negativo, ele para de fazer perguntas inúteis ao usuário, economizando tempo e processamento.
  • Variável de controle (valores_validos): Ela garante que a frase final com o total de dias só seja exibida se todas as entradas passarem na validação.
  • Boas práticas: Em sistemas reais, validar os dados na "entrada" (input) evita que erros se propaguem para o restante da aplicação.

Seu raciocínio com listas foi ótimo. Continue explorando como as estruturas de repetição interagem com as condicionais para criar fluxos de trabalho cada vez mais robustos!

Espero que possa ter lhe ajudado!

Muito bem observado! Agradeço o feedback a sugestão e já está anotado para melhorias.