· Miler Roque · Ejercicio  · 2 min lectura

Ejercicio práctico, envío de mensajes encriptados al explorador Curiosity

Solución de una práctica de programación en Java sobre el envío de un mensaje encriptado al explorador Curiosity.

Solución de una práctica de programación en Java sobre el envío de un mensaje encriptado al explorador Curiosity.

Descripción

Solución de una práctica de programación en Java que aborda el desafío de enviar un mensaje encriptado al explorador Curiosity, la famosa sonda espacial de la NASA, utilizando técnicas básicas de encriptación y comunicación para garantizar la integridad y confidencialidad de la información transmitida.

Problema

El explorador CURIOSITTY está analizando los elementos que va descubriendo en el suelo de Marte y los va comparando con datos de la Tierra. Uno de los programas está encargado de analizar 3 datos importantes provenientes de la Tierra. Estos datos deben estar encriptados y luego enviados a CURIOSITTY. Para ello, se solicita a usted que elabore un programa para encriptar y enviar los siguientes datos.

  • La gravedad de la tierra (considerar solo la parte decimal de dos dígitos)
  • La velocidad de la luz (en km)
  • La primera letra del país de origen (considerar sólo las mayúsculas)

Datos sin encriptar:

Ingrese la gravedad de la tierra: 9.80
Ingrese la velocidad de la luz: 360 000
Ingrese la primera letra del país de origen: P

Datos encriptados:

Gravedad de la tierra en base 4: 1100
Velocidad de la luz en base 9: 607740
Letra del país de origen en base 2: 1010000

Mensaje para Curiosity:

1100-607740-1010000

Código

package ejercicios;

public class EnviarMensajeCuriosity {

    public static void main(String[] args) {
        //Declaración
        String pais = "perú";
        int velocidadLuz = 360000;
        Double gravedadTierra = 9.8;

        //Convertimos a mayúscula y seleccionamos la primera letra
        int primeraLetra = (int)pais.toUpperCase().charAt(0);

        //Seleccionamos la parte decimal, pero antes lo convertimos a String
        String gravedadTierraString = String.valueOf(gravedadTierra);
        String parteDecimal=gravedadTierraString.substring(gravedadTierraString.indexOf('.')+1);
        //Si no completa los 2 dígitos, completamos con "espacios", que luego reemplazamos con "ceros"
        parteDecimal =String.format("%-2s", parteDecimal).replace(" ", "0");
        //Finalmente convertimos a entero
        int parteDecimalEntero = Integer.parseInt(parteDecimal);


        System.out.println("Gravedad de la tierra: "+9.80);
        System.out.println("Velocidad de la luz: "+360000);
        System.out.println("Primera letra del país de origen: "+9.80);
        System.out.println("\nDatos encriptados");
        System.out.println("\nGravedad de la tierra en base 4: 1100");
        System.out.println("Velocidad de la luz en base 9: 607740");
        System.out.println("Letra del país de origen en base 2: 1010000");
        System.out.println("\nMENSAJE PARA CURIOSITTY -> "+convertirABaseNEnteros(parteDecimalEntero,4)+"-"+convertirABaseNEnteros(velocidadLuz,9)+"-"+convertirABaseNEnteros(primeraLetra,2));
    }

    //Función recursiva que convierte a base N
    private static String convertirABaseNEnteros(int n,int base){
        if((n/base)<base) return n/base+""+(n%base);
        else return convertirABaseNEnteros(n/base,base)+""+n%base;
    }

}

Volver al blog

Posts relacionados

Ver todos »
Java, ¿Qué son los wrappers?

Java, ¿Qué son los wrappers?

Los wrappers en Java son clases que envuelven tipos primitivos como int, double y boolean, proporcionando métodos adicionales para trabajar con estos datos básicos.