Algoritmo: explique qual foi seu plano para resolver o problema, detalhando o algoritmo sem detalhar laços. Exemplo: a função percorre o dicionário, acumulando a soma das manchas e contando o número de manchas em um dado período.
Passo 1
Beleza, a ideia do enunciado é: “Explique qual foi seu plano pra resolver o problema, detalhando o algoritmo (mas sem entrar no detalhe de cada loop)”.
Conteúdo: programação de algoritmos em Python (ou pseudo), trabalhando com dicionário, variáveis auxiliares e operações básicas. A gente vai usar:
Conteúdo: programação de algoritmos em Python (ou pseudo), trabalhando com dicionário, variáveis auxiliares e operações básicas. A gente vai usar:
- Um dicionário que mapeia datas (ou qualquer chave) para quantidade de manchas.
- Variáveis para acumular soma e contar quantas entradas caem num período.
- Uma comparação de intervalo pra filtrar só o que interessa.
Passo 2
O que entra e sai da nossa função:
Entrada:
• Um dicionário
• Duas datas:
Saída:
• A soma total de manchas nesse período.
• A média de manchas por registro nesse mesmo período.
Entrada:
• Um dicionário
info
onde cada chave é uma data e cada valor é número de manchas.• Duas datas:
data_inicio
e data_fim
(definindo nosso período).Saída:
• A soma total de manchas nesse período.
• A média de manchas por registro nesse mesmo período.
Passo 3
Aqui vai o plano geral do algoritmo, sem detalhar exatamente cada laço:
- Inicializo duas variáveis:
–soma = 0
(vai guardar total de manchas)
–cont = 0
(vai contar quantas entradas caíram no período) - Percorro cada par (data, manchas) dentro do dicionário
info
. - Se a
data
estiver entredata_inicio
edata_fim
(incluindo as bordas), então:
– façosoma += manchas
– façocont += 1
- Depois que “passei” por todo mundo, calculo a média:
– Secont > 0
, então
média =
– Senão (não tinha nada no período), defino média = 0 pra não dar erro de divisão por zero. - Por fim, retorno tanto a
soma
quanto amédia
(pode ser numa tupla, num dicionário, como você preferir).
Resposta
Função
calcula_manchas(info, data_inicio, data_fim)
faz:- soma ← 0; cont ← 0
- para cada (data, manchas) em info:
– se data_inicio ≤ data ≤ data_fim então soma ← soma + manchas; cont ← cont + 1 - se cont > 0 então média ← soma/cont senão média ← 0
- retorna (soma, média)