Crie um programa que receba as temperaturas registradas diariamente durante um mês ( 30 dias) e que informe que dia do mês foi o mais quente e que dia foi o mais frio.
Passo 1
Beleza, o que a gente quer: um programa que leia as temperaturas de 30 dias e diga qual dia foi o mais quente e qual foi o mais frio.
Matéria envolvida: listas (arrays), laços de repetição (loop), variáveis e comparações.
O que vamos precisar:
Matéria envolvida: listas (arrays), laços de repetição (loop), variáveis e comparações.
O que vamos precisar:
- Criar uma lista para armazenar 30 valores.
- Usar um laço para preencher essa lista lendo do usuário.
- Percorrer a lista comparando valores para achar o máximo e o mínimo e guardar também o dia (índice+1).
Passo 2
Primeiro a gente monta a entrada de dados. Em Python, por exemplo, a gente usa um laço
Isso garante que a gente tenha um vetor
for i in range(30):
e dentro dele chama input()
para ler a temperatura, converte pra float
e dá um append
na lista.Isso garante que a gente tenha um vetor
temps
com 30 valores:temps = []
for i in range(30):
t = float(input(f"Dia {i+1}, temperatura: "))
temps.append(t)
Aqui
i+1
é só pra o usuário ver “Dia 1, Dia 2…” em vez de começar em zero.Passo 3
Agora que temos a lista
Teoria rápida: para isso a gente inicializa duas variáveis,
Depois, da posição 1 até 29 (ou seja, índice de 1 a 29), a gente compara:
temps
, precisamos achar o menor e o maior valor e em que dia eles ocorreram.Teoria rápida: para isso a gente inicializa duas variáveis,
min_temp
e max_temp
, com o primeiro elemento da lista (temps[0]
) e também min_dia = 1
, max_dia = 1
.Depois, da posição 1 até 29 (ou seja, índice de 1 a 29), a gente compara:
- se
temps[i] < min_temp
, atualizamin_temp = temps[i]
emin_dia = i+1
. - se
temps[i] > max_temp
, atualizamax_temp = temps[i]
emax_dia = i+1
.
Passo 4
Detalhando o laço de comparação:
min_temp = max_temp = temps[0]
min_dia = max_dia = 1
for i in range(1, 30):
if temps[i] < min_temp:
min_temp = temps[i]
min_dia = i + 1 # porque dia = índice + 1
if temps[i] > max_temp:
max_temp = temps[i]
max_dia = i + 1
Aqui usamos
e
“na mão”, ou seja, atualizamos as variáveis sempre que encontramos algo menor ou maior.
Passo 5
Por fim, é só exibir o resultado para o usuário:
print(f"O dia mais frio foi o dia {min_dia} com {min_temp}°C")
print(f"O dia mais quente foi o dia {max_dia} com {max_temp}°C")
E tá pronto!
Resposta
Segue o programa completo em Python:
temps = []
for i in range(30):
t = float(input(f"Dia {i+1}, temperatura: "))
temps.append(t)
min_temp = max_temp = temps[0]
min_dia = max_dia = 1
for i in range(1, 30):
if temps[i] < min_temp:
min_temp = temps[i]
min_dia = i + 1
if temps[i] > max_temp:
max_temp = temps[i]
max_dia = i + 1
print(f"O dia mais frio foi o dia {min_dia} com {min_temp}°C")
print(f"O dia mais quente foi o dia {max_dia} com {max_temp}°C")