Você está aqui: Python ::: Desafios e Lista de Exercícios Resolvidos ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o ângulo entre os ponteiros de horas e minutos em um relógio analógico - Desafio de Programação Resolvido em PythonQuantidade de visualizações: 585 vezes |
Pergunta/Tarefa: Este exercício é um desafio que aparece com muita frequência em entrevistas para programadores. Trata-se de uma tarefa na qual você deverá pedir para o usuário informar o valor das horas (no formato 12 ou 24 horas) e os minutos (de 0 a 59) e retornar o ângulo, em graus, do ponteiro das horas em relação ao ponteiro dos minutos. Este desafio é muito interessante, pois serve como base para a criação de um relógio analógico que se atualiza sozinho, a cada segundo decorrido. Em mais dicas do site nós mostramos como isso pode ser feito. Antes da resolução do exercício você deve se lembrar que haverá dois ângulos: o ângulo que vai do ponteiro de horas para o ponteiro dos minutos e o ângulo que vai do ponteiro dos minutos para o ponteiro das horas. O exercício pede apenas o primeiro. Sua saída deverá ser parecida com: Informe as horas: 9 Informe os minutos: 0 O ângulo entre os dois ponteiros é: 90 graus. Veja a resolução comentada deste exercício em Python: ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- def main(): # vamos pedir para o usuário informar as horas horas = int(input("Informe as horas: ")) # vamos pedir para o usuário informar os minutos minutos = int(input("Informe os minutos: ")) # vamos calcular o ângulo entre os ponteiros de horas # e minutos no relógio analógico angulo = calcular_angulo(horas, minutos) # e mostramos o resultado print("O ângulo entre os dois ponteiros é: {0} graus.".format(angulo)) # função que recebe as horas e minutos e retorna o # ângulo entre os dois ponteiros do relógio analógico def calcular_angulo(horas, minutos): # o primeiro passo é converter o formato 24 horas para # 12 horas horas = horas % 12 # agora calculamos a posição do ponteiro das horas ponteiro_horas = ((horas * 360) / 12) + ((minutos * 360) / (12 * 60)) # calculamos a posição do ponteiro dos minutos ponteiro_minutos = (minutos * 360) / 60 # então calculamos o ângulo entre os ponteiros angulo = abs(ponteiro_horas - ponteiro_minutos) # queremos o ângulo mais curto if angulo > 180: angulo = 360 - angulo # finalmente retornamos o ângulo calculado return angulo if __name__== "__main__": main() |
![]() |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |