Hola, hoy proponemos un ejercicio de suma de ángulos sexagesimales en java, para ello primero indicamos al usuario cuantos ángulos quiere sumar, después introducimos los grados minutos y segundos en una matriz.
En este caso el usuario introdujo dos ángulos a sumar:
35º | 43′ | 50″ |
12º | 36′ | 35″ |
Una vez hecho esto sumamos las columnas y obtenemos:
sumas=el sumatorio de la columna de los segundos(85″)
sumam=el sumatorio de la columna de los minutos(79′)
sumag=el sumatorio de la columna de los grados(47º)
Por último normalizamos los segundos y minutos si son mayores que 60.
Quedando como segundos resultantes el resto entre los segundos y 60 y añadimos a los minutos el cociente de dividir los segundos entre 60.
Lo mismo hacemos con los minutos, normalizando si estos pasan de 60 entonces añadimos a los grados el cociente entre minutos y 60, el nuevo valor de minutos será el resto entre los minutos y 60.
package aplicacion1; import java.util.Scanner; /** * * @author Javi */ public class sumarAngulos { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Scanner miteclado = new Scanner(System.in); System.out.println(" "); System.out.println("Cuantos angulos quieres sumar?"); int num=miteclado.nextInt(); int matriz[][]; matriz =new int[num][3]; for(int i=0;i<matriz.length;i++){ for(int j=0;j<matriz[i].length;j++){ if(j==0){ System.out.println("Dime los grados para el angulo "+(i+1)); matriz[i][j]=miteclado.nextInt(); } if(j==1){ System.out.println("Dime los minutos para el angulo "+(i+1)); matriz[i][j]=miteclado.nextInt(); } if(j==2){ System.out.println("Dime los segundos para el angulo "+(i+1)); matriz[i][j]=miteclado.nextInt(); } } } int sumag=0; int sumam=0; int sumas=0; for(int j=0;j<3;j++){ for(int i=0;i<matriz.length;i++){ if(j==0){ sumag=sumag+matriz[i][j]; } if(j==1){ sumam=sumam+matriz[i][j]; } if(j==2){ sumas=sumas+matriz[i][j]; } } } if(sumas>60){ sumam=sumam+(sumas/60); sumas=sumas%60; } if(sumam>60){ sumag=sumag+(sumam/60); sumam=sumam%60; } System.out.println("La suma es "+sumag+"º "+sumam+"' "+sumas+"\""); } }
La salida sería la siguiente:
Cuantos angulos quieres sumar?
2
Dime los grados para el angulo 1
35
Dime los minutos para el angulo 1
43
Dime los segundos para el angulo 1
50
Dime los grados para el angulo 2
12
Dime los minutos para el angulo 2
36
Dime los segundos para el angulo 2
35
La suma es 48º 20′ 25″
Espero que les haya gustado 😉