def obter_direcao(angulo):
# Tabela de referência de direções e ângulos
direcoes = {
"N": 0,
"NNE": 22.5,
"NE": 45,
"ENE": 67.5,
"E": 90,
"ESE": 112.5,
"SE": 135,
"SSE": 157.5,
"S": 180,
"SSW": 202.5,
"SW": 225,
"WSW": 247.5,
"W": 270,
"WNW": 292.5,
"NW": 315,
"NNW": 337.5,
"N": 360
}
# Encontrar a direção correspondente ao ângulo fornecido
menor_diferenca = float('inf')
direcao_mais_proxima = None
for direcao, ang in direcoes.items():
diferenca = abs(angulo - ang)
if diferenca < menor_diferenca:
menor_diferenca = diferenca
direcao_mais_proxima = direcao
return direcao_mais_proxima
def imprimir_tabela_personalizada(valores_angulos):
print("Tabela de Ângulos e Direções Correspondentes:")
print("--------------------------------------------")
print("| Hora | Ângulo (°) | Direção |")
print("--------------------------------------------")
for hora, angulo in enumerate(valores_angulos):
direcao = obter_direcao(angulo)
print(f"| {hora:02}h | {angulo:8.2f} | {direcao:7} |")
print("--------------------------------------------")
def main():
# Coletar os ângulos para as 24 horas de uma vez
print("Cole os ângulos em graus para as 24 horas, um por linha:")
valores_angulos = []
while True:
entrada = input("Cole os ângulos em graus, um por linha (24 linhas no total):\n")
angulos = entrada.strip().split('\n')
if len(angulos) == 24:
try:
valores_angulos = [float(ang) for ang in angulos]
break
except ValueError:
print("Entrada inválida. Certifique-se de que todos os valores são números.")
else:
print("Você deve colar exatamente 24 ângulos, um por linha.")
# Após coletar todos os ângulos, imprimir a tabela personalizada
imprimir_tabela_personalizada(valores_angulos)
if __name__ == "__main__":
main()
Click Run or press shift + ENTER to run code