| Você está aqui: Java ::: 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 - Exercícios Resolvidos de JavaQuantidade de visualizações: 869 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 Java: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package estudos;
import java.util.Scanner;
public class Estudos{
  public static void main(String[] args) {
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir para o usuário informar as horas
    System.out.print("Informe as horas: ");
    int horas = Integer.parseInt(entrada.nextLine());
    
    // vamos pedir para o usuário informar os minutos
    System.out.print("Informe os minutos: ");
    int minutos = Integer.parseInt(entrada.nextLine());
    
    // vamos calcular o ângulo entre os ponteiros de horas
    // e minutos no relógio analógico
    int angulo = calcularAngulo(horas, minutos);
    
    // e mostramos o resultado
    System.out.println("O ângulo entre os dois ponteiros é: " +
      angulo + " graus.");
  }
  
  // método que recebe as horas e minutos e retorna o
  // ângulo entre os dois ponteiros do relógio analógico
  public static int calcularAngulo(int horas, int minutos){
    // o primeiro passo é converter o formato 24 horas para
    // 12 horas    
    horas = horas % 12;
 
    // agora calculamos a posição do ponteiro das horas
    int ponteiro_horas = ((horas * 360) / 12) + ((minutos * 360) / (12 * 60));
 
    // calculamos a posição do ponteiro dos minutos
    int ponteiro_minutos = (minutos * 360) / 60;
 
    // então calculamos o ângulo entre os ponteiros    
    int angulo = Math.abs(ponteiro_horas - ponteiro_minutos);
    
    // queremos o ângulo mais curto
    if (angulo > 180) {
      angulo = 360 - angulo;
    }
 
    // finalmente retornamos o ângulo calculado
    return angulo;
  }
}
 | 
|  Link para compartilhar na Internet ou com seus amigos: | 
| Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java | 
| Veja mais Dicas e truques de Java | 
| Dicas e truques de outras linguagens | 
| E-Books em PDF | ||||
| 
 | ||||
| 
 | ||||
| Linguagens Mais Populares | ||||
| 
			   1º lugar: Java | 


 
 





