Programación 1 Ingeniería de Sistemas: Ejercicios para aplicaciones en Java y su solución (Parte 1)

El siguiente artículo plasma de manera breve la solución a los primeros 10 ejercicios de la guia de clase para Programación I de Ingeniería de sistemas y su solución de la manera más básica posible. Existen multiples maneras de resolver los ejercicios, así que si posees alguna para los problemas mencionados, compartelo en la caja de comentarios.

1. Escribir un algoritmo que calcule el área de un triángulo en función de la base y la altura. El área de un triángulo es igual a la base multiplicada por la altura dividida entre 2:

import javax.swing.JOptionPane;

public class Index {
    
    public static void main(String[] args){
        double base, altura, area;
        
        base = Double.parseDouble(
            JOptionPane.showInputDialog(null, "Ingrese la base del triangulo:")
        );
        
        altura = Double.parseDouble(
            JOptionPane.showInputDialog(null, "Ingrese la altura del triangulo:")
        );
        
        area = (base * altura) / 2;
        
        JOptionPane.showMessageDialog(null, "El area del triangulo con las dimensiones especificadas es de: " + area + " cm2");
    }
}

2. Construya un algoritmo tal que, dado el radio de un círculo, calcule e imprima su área y la longitud de su circunferencia. El área del círculo es igual a Π*r2 y la longitud de la circunferencia es 2 * Π * r donde r es el radio.

import javax.swing.JOptionPane;

public class Index {
    
    public static void main(String[] args){
        double radio, area, longitudCircunferencia;
        
        radio = Double.parseDouble(
            JOptionPane.showInputDialog(null, "Ingrese el radio del círculo:")
        );
        
        area = Math.PI * (Math.pow(radio, 2));
        longitudCircunferencia = 2 * Math.PI * radio;
        
        JOptionPane.showMessageDialog(
            null, 
            "El area del circulo es de: " + area + "\n"
            +
            "La longitud de la circunferencia es de: " + longitudCircunferencia
        );
    }
}

3. Construya un algoritmo tal que, dados como datos la base y la altura de un rectángulo, calcule el perímetro (suma de lados) y la superficie (área) del mismo.

import javax.swing.JOptionPane;

public class Index {
    
    public static void main(String[] args){
        double base, altura, area, perimetro;
        
        base = Double.parseDouble(
            JOptionPane.showInputDialog(null, "Ingrese la base del rectángulo:")
        );
        
        altura = Double.parseDouble(
            JOptionPane.showInputDialog(null, "Ingrese la altura del rectángulo:")
        );
        
        perimetro = (base * 2) + (altura * 2);
        area = base * altura;
        
        JOptionPane.showMessageDialog(
            null, 
            "El area del rectángulo es de: " + area + " cm2\n"
            +
            "El perimetro del rectángulo es de: " + perimetro + "cm"
        );
    }
}

4. La relación entre los lados (a,b) de un triángulo rectángulo y la hipotenusa (h) viene dada por la fórmula a2+b2=h2. Elabore un algoritmo que calcule la hipotenusa de un triángulo rectángulo, a partir de las medidas de sus catetos:

import javax.swing.JOptionPane;

public class Index {
    
    public static void main(String[] args){
        double ladoA, ladoB, hipotenusa;
        
        ladoA = Double.parseDouble(
            JOptionPane.showInputDialog(null, "Ingrese la medida del lado A:")
        );
        
        ladoB = Double.parseDouble(
            JOptionPane.showInputDialog(null, "Ingrese la medida del lado B:")
        );
        
        hipotenusa = Math.sqrt((Math.pow(ladoA, 2)) + (Math.pow(ladoB, 2)));
        
        JOptionPane.showMessageDialog(
            null, 
            "La hipotenusa mide: " + hipotenusa
        );
    }
}

5. Elabore un algoritmo que calcule el volumen de una esfera a partir del valor dado de su diámetro.

import javax.swing.JOptionPane;

public class Ejercicio5 {
                
    public static void main(String[] args) {
        double diametro, volumen;
        
        diametro = Double.parseDouble(
            JOptionPane.showInputDialog(null, "Ingrese el diametro de la esfera:")
        );
        
        volumen = (4 * Math.PI *(Math.pow(diametro,3))) / 3;
        
        JOptionPane.showMessageDialog(null, "El volumen de la esfera es de: " + volumen);
    }
}

6. Construya un algoritmo tal que dado como dato el lado de un cubo, calcule el área de la base, el área lateral (4 caras de los lados), el área total (todas las caras) y el volumen (lado*lado*lado).

import javax.swing.JOptionPane;

public class Index {
    
    public static void main(String[] args){
        double lado, areaBase, areaLateral, areaTotal, volumen;
        
        lado = Double.parseDouble(
            JOptionPane.showInputDialog(null, "Ingrese la medida del del cubo:")
        );
        
        areaBase = lado * lado;
        areaLateral = areaBase * 4;
        areaTotal = (areaBase * 2) + areaLateral;
        volumen = Math.pow(lado, 3);
        
        JOptionPane.showMessageDialog(
            null, 
            "El area base mide: " + areaBase + "cm2 \n"
            + "El area lateral mide: " + areaBase + "cm2 \n"
            + "El area total mide: " + areaTotal + "cm2 \n"
            + "El volumen del cubo es de: " + volumen + " cm3"
        );
    }
}

7. El área de un triángulo cuyos lados son a, b y c, se puede calcular por la fórmula:

Escribir un programa que lea las longitudes de los tres lados de un triángulo y calcule el área del triángulo.

import javax.swing.JOptionPane;

public class Index {

    public static void main(String[] args) {
        double a, b, c, s, area;
        
        a = Double.parseDouble(JOptionPane.showInputDialog(null, "Ingrese la medida del lado a: "));
        b = Double.parseDouble(JOptionPane.showInputDialog(null, "Ingrese la medida del lado b: "));
        c = Double.parseDouble(JOptionPane.showInputDialog(null, "Ingrese la medida del lado c: "));
        
        s = (a + b + c) / 2;
        
        area = Math.sqrt(s * (s - a) * (s - b ) * ( s - c ));
        
        JOptionPane.showMessageDialog(
            null, 
            "El area del triangulo es de: " + area + " centimetros cuadrados"
        );
    }
}

8. En las olimpiadas de invierno el tiempo que realizan los participantes en la competencia de velocidad en pista se mide en minutos, segundos y centésimas. La distancia que recorren, por otra parte, se expresa en metros. Construya un algoritmo que calcule la velocidad de los participantes en kilómetros por hora, al ingresar la distancia recorrida en metros y el tiempo tomado en minutos, segundos y centésimas (Tenga en cuenta que 1 km=1000 mts, 1 hora=60 minutos, 1 minuto=60 segundos y 1 seg=100 centésimas):

import javax.swing.JOptionPane;

public class Index {
    
    public static void main(String[] args){
        // velocidad = distanciarecorrida/tiempo
        int distanciaRecorridaMetros, tiempoEnMinutos, tiempoEnSegundos, tiempoEnCentesimas;
        double metrosEnKilometros, totalSegundos, segundosEnHoras, velocidad;
        
        distanciaRecorridaMetros = Integer.parseInt(
            JOptionPane.showInputDialog(null, "Ingrese la distancia recorrida por el participante en metros: ")
        );
        
        tiempoEnMinutos = Integer.parseInt(
            JOptionPane.showInputDialog(null, "Ingrese el tiempo tomado en minutos: ")
        );
        
        tiempoEnSegundos = Integer.parseInt(
            JOptionPane.showInputDialog(null, "Ingrese el tiempo tomado en segundos: ")
        );
        
        tiempoEnCentesimas = Integer.parseInt(
            JOptionPane.showInputDialog(null, "Ingrese el tiempo tomado en centesimas: ")
        );
        
        metrosEnKilometros = distanciaRecorridaMetros / 1000;
        totalSegundos = (60 * tiempoEnMinutos) + tiempoEnSegundos + (tiempoEnCentesimas / 100);
        segundosEnHoras = totalSegundos / 3600;
        
        velocidad = (metrosEnKilometros / segundosEnHoras);
        
        JOptionPane.showMessageDialog(null, 
            "En un tiempo de " + tiempoEnMinutos + " minutos, " 
            + tiempoEnSegundos + " segundos y "
            + tiempoEnCentesimas + " centesimas se recorrieron " + distanciaRecorridaMetros + " metros. \n"
            + "Es decir el participante se mantuvo en una velocidad de " + velocidad + " Km/H"
        );
    }
}

9. Elaborar un programa que pida el total de kilómetros recorridos, el precio de la gasolina (por galón), el dinero de gasolina gastado en el viaje y el tiempo que se ha tardado (en horas y minutos) y que calcule:

  • Consumo de gasolina (en galones y pesos) por cada 100 km recorridos.
  • Consumo de gasolina (en galones y pesos) por cada km recorrido.
  • Velocidad media (en km/h y m/s).
import javax.swing.JOptionPane;

public class Index {
    public static void main(String args[]){
            double consumogasolinaenlitrospor100km, consumogasolinaenlitrosporkm, consumogasolinaenpesospor100km, 
                    consumogasolinaenpesosporkm, dinerogastadoengasolina, galonesgastados, gasolinagastadaenlitros,
                    kilometrosrecorridos, preciogasolinaporgalon,  preciogasolinaporlitro, tiempotardadoenhoras, 
                    tiempotardadoenminutos, velocidadpromediokmporhora, velocidadpromediometrosporsegundo;
            

            kilometrosrecorridos = Double.parseDouble(JOptionPane.showInputDialog(null, "Ingrese el número de Kilometros recorridos en el viaje (p. ej 300):"));
            
            preciogasolinaporgalon = Double.parseDouble(JOptionPane.showInputDialog(null,"Ahora ingrese el precio de gasolina por galón en pesos (p. ej 9000):"));
            
            dinerogastadoengasolina = Double.parseDouble(JOptionPane.showInputDialog(null,"Cuanto dinero gasto en tanquear su vehiculo en pesos (p. ej 27000)?"));
            
            tiempotardadoenhoras = Double.parseDouble(JOptionPane.showInputDialog(null,"Cuantas horas tardó en realizar el viaje sin contar los minutos (p. ej 2)"));
             
            tiempotardadoenminutos = Double.parseDouble(JOptionPane.showInputDialog(null,"Cuantos minutos adicionales tardó en realizar el viaje para complementar las horas (p. ej 60)"));
            // Obtener numero de galones tanqueados a partir del precio de la gasolina y de la plata invertida
            galonesgastados = dinerogastadoengasolina/preciogasolinaporgalon;
            // Convertir galones gastados a litros
            gasolinagastadaenlitros = galonesalitros(galonesgastados);
            // Calcular el precio del litro de gasolina en pesos colombianos
            preciogasolinaporlitro = (preciogasolinaporgalon/galonesalitros(1));
            // Calcular cuantos litros de gastaron de gasolina por cada kilometro
            consumogasolinaenlitrosporkm = litrogasolinaporkilometro(kilometrosrecorridos,gasolinagastadaenlitros);
            consumogasolinaenlitrospor100km = consumogasolinaenlitrosporkm*100;
            // Calcular el costo en pesos de la gasolina gastada por kilometros
            consumogasolinaenpesosporkm = (consumogasolinaenlitrosporkm*preciogasolinaporlitro);
            consumogasolinaenpesospor100km = consumogasolinaenpesosporkm*100;
            // Calcular velocidad media
            velocidadpromediokmporhora = velocidadpromedioenkilometrosporhora(kilometrosrecorridos,(tiempotardadoenhoras + minutosahoras(tiempotardadoenminutos)));
            velocidadpromediometrosporsegundo = kilometrosporhoraametrosporsegundo(velocidadpromediokmporhora);
            
            JOptionPane.showMessageDialog(null, "Consumo de combustible por Kilometro: "+consumogasolinaenlitrosporkm+"(Litros/Km) \n" +
                "Costo del combustible por Kilometro: $"+consumogasolinaenpesosporkm+"(COP/Km) \n"
                +
                "Consumo de combustible por cada 100 Kilometros: "+consumogasolinaenlitrospor100km+"(Litros/100Km) \n"
                +
                "Costo del combustible por cada 100 Kilometros: $"+consumogasolinaenpesospor100km+"(COP/Km) \n"
                +
                "La velocidad promedio en Km/H es de: "+velocidadpromediokmporhora+"Km/H \n"
                +
                "La velocidad promedio en m/s es de: " + velocidadpromediometrosporsegundo + "m/s"
            );
    }

    // Funcion para convertir galones a litros
    public static double galonesalitros(double galones) {
        double litros;
        litros = galones*3.785;
        return litros;
    }

    // Calcular la cantidad de litros gastados por cada kilometro de una distancia recorrida
    public static double litrogasolinaporkilometro(double distancia_recorrida, double litros_gasolina) {
        double litros;
        litros = (litros_gasolina/distancia_recorrida);
        return litros;
    }

    // Función para convertir minutos a horas
    public static double minutosahoras(double minutos) {
        double litros;
        litros = minutos/60;
        return litros;
    }

    // Función para calcular la velocidad promedio a partir de una distancia recorrida en determinado tiempo
    public static double velocidadpromedioenkilometrosporhora(double distancia_recorrida, double tiempo) {
        double litros;
        litros = distancia_recorrida/tiempo;
        return litros;
    }

    // Función para convertir los kilometros por hora a metros por segundo (Km/H to m/s)
    public static double kilometrosporhoraametrosporsegundo(double velocidad_en_kilometros) {
        double litros;
        litros = (velocidad_en_kilometros*(5.0/18.0));
        return litros;
    }
}

10. En una casa de cambio necesitan construir un programa tal que dado como dato una cantidad expresada en dólares, convierta esa cantidad a pesos, a euros y a pesos mexicanos. Construya el programa en Java correspondiente. (1 dólar equivale a $1965,20 pesos colombianos; 1 euro equivale a $2702,46 pesos colombianos; 1 euro equivale a $17,96 pesos mexicanos):

import javax.swing.JOptionPane;

public class Index {
    
    private static final double PRECIO_DOLAR = 1965.20;
    private static final double PRECIO_EURO = 2702.46;
    private static final double PRECIO_EURO_ENPESOS_MEXICANOS = 17.96;
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        double dolares, totalPesos, totalEuros, totalPesosMexicanos;
        
        dolares = Double.parseDouble(
            JOptionPane.showInputDialog(null, "Ingrese la cantidad de dolares: ")
        );
        
        totalPesos = (dolares * PRECIO_DOLAR);
        totalEuros = (totalPesos / PRECIO_EURO);
        totalPesosMexicanos = (PRECIO_EURO_ENPESOS_MEXICANOS * totalEuros);
        
        JOptionPane.showMessageDialog(
            null, 
            "Total Pesos: COP " + totalPesos + "\n " 
            + "Total Euros: EUR " + totalEuros + "\n " 
            + "Total Pesos Mexicanos: MXN " + totalPesosMexicanos  
        );
    }
}

Esto podría ser de tu interes

Conviertete en un programador más sociable