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 😉
