Ejercicios resueltos

Ejercicios resueltos utilizando métodos

(Ver Métodos – teoría)

En los siguientes ejercicios, a los métodos se les declara la palabra reservada static ya que los llamamos desde el método main que es estático.

1) Hacer un programa para ingresar un número entero y reportar su factorial.

         import java.util.Scanner;

         public class Ejercicio01 {
                 public static double factorial(int numero){
                            double factorial=1;
                            for(int i=1;i<=numero;i++)
                                   factorial = factorial*i;
                            return factorial;
                 }  
                 public static void main(String[] args) {
                            Scanner entrada = new Scanner(System.in);
                            int numero;
                            do{
                                      System.out.print(«Ingresar numero: «);
                                      numero = entrada.nextInt();
                            }while(numero<0);
                            System.out.println(«El factorial es: » + factorial(numero));
                 }
         }

2) Hacer un programa para ingresar dos números enteros y reportar su máximo común divisor.

         import java.util.Scanner;

         public class Ejercicio02 {
                  public static int mcd(int numero1, int numero2){
                             int divisor=2, mcd=1;
                             while(divisor<=numero1 && divisor<=numero2){
                                         if(numero1%divisor == 0 && numero2%divisor == 0)
                                         {
                                                mcd = mcd*divisor;
                                                numero1 = numero1/divisor;
                                                numero2 = numero2/divisor;
                                         }
                                         else
                                                     divisor++;
                             }
                             return mcd;
                  }
                  public static void main(String[] args) {
                             Scanner entrada = new Scanner(System.in);
                             int numero1, numero2;
                             do{
                                       System.out.print(«Ingresar primer numero: «);
                                       numero1 = entrada.nextInt();
                             }while(numero1<0);
                             do{
                                       System.out.print(«Ingresar segundo numero: «);
                                       numero2 = entrada.nextInt();
                             }while(numero2<0);
                             System.out.println(«El maximo comun divisor de «+numero1+» y «+numero2+» es: »
                                                                                                                                            + mcd(numero1,numero2));
                  }
         }

3) Hacer un programa para ingresar un número entero y reportar todos sus divisores.

         import java.util.Scanner;

         public class Ejercicio03 {
                  public static void reportarDivisores(int numero){
                             System.out.println(«Los divisores del numero son: «);
                             for(int divisor=1;divisor<=numero;divisor++){
                                    if(numero%divisor == 0)
                                            System.out.print(divisor + » «);
                            }
                            System.out.println(); 
                  }
                  public static void main(String[] args) {
                             Scanner entrada = new Scanner(System.in);
                             int numero;
                             do{
                                       System.out.print(«Ingresar numero: «);
                                       numero = entrada.nextInt();
                                       }while(numero<=0);
                             reportarDivisores(numero);
                  }
         }

4) Hacer un programa para ingresar un número entero y reportar sus factores primos.

         import java.util.Scanner;

         public class Ejercicio04 {
                  public static void reportarFactoresPrimos(int numero){
                             int divisor=2;
                             while(numero>1){
                                       while(numero%divisor != 0)
                                                divisor = divisor+1;
                                       System.out.print(divisor + » «);
                                       numero = numero/divisor;
                             }
                             System.out.println(«»);
                  }
                  public static void main(String[] args) {
                             Scanner entrada = new Scanner(System.in);
                             int numero;
                             do{
                                       System.out.print(«Ingresar numero: «);
                                       numero = entrada.nextInt();
                             }while(numero<=0);
                             reportarFactoresPrimos(numero);
                  }
         }

5) Hacer un programa para ingresar un número y reportar si es un número primo.

         import java.util.Scanner;

         public class Ejercicio05 {
                  public static boolean esPrimo(int numero){
                             int contadorDivisor=0;
                             for(int i=1;i<=numero;i++){
                                    if(numero%i == 0)
                                           contadorDivisor++;
                             }
                             if(contadorDivisor == 2)
                                       return true;
                             else
                                       return false;
                  }
                  public static void main(String[] args) {
                             Scanner entrada = new Scanner(System.in);
                             int numero;
                             do{
                                      System.out.print(«Ingresar numero: «);
                                      numero = entrada.nextInt();
                             }while(numero<=0);
                             if(esPrimo(numero))
                                        System.out.println(«El numero es primo»);
                             else
                                        System.out.println(«El numero no es primo»);
                  }
         }

6) Calcular el valor de la siguiente sumatoria: 

                  suma = 1 + x + x2/2! + x3/3! + x4/4! + . . . + xn/n!

         import java.util.Scanner;

         public class Ejercicio06 {
                  public static double suma(double x, int n){
                             double suma=1, factorial=1, producto=1;
                             for(int i=1;i<=n;i++){
                                    factorial = factorial*i;
                                    producto = producto*x;
                                    suma = suma+producto/factorial;
                             }
                             return suma;
                  }
                  public static void main(String[] args) {
                             Scanner entrada = new Scanner(System.in);
                             double x;
                             int n;
                             System.out.print(«Ingresar x: «);
                             x = entrada.nextDouble();
                             System.out.print(«Ingresar n: «);
                             n = entrada.nextInt();
                             System.out.println(«El valor de la sumatoria es: » + suma(x,n));
                  }
         }

7) Hacer un programa para ingresar el radio y la altura de un cilindro y calcular su volumen.

         import java.util.Scanner;

         public class Ejercicio07 {
                  public static double calcularVolumen(double radio, double altura){
                             double volumen;
                             volumen = Math.PI*Math.pow(radio,2)*altura;
                             return volumen;
                  }
                  public static void main(String[] args) {
                             Scanner entrada = new Scanner(System.in);
                             double radio, altura;
                             System.out.print(«Ingresar radio: «);
                             radio = entrada.nextDouble();
                             System.out.print(«Ingresar altura: «);
                             altura = entrada.nextDouble();
                             System.out.println(«El volumen del cilindro es: »
                                                                                     + calcularVolumen(radio,altura));
                  }
         }

8) En el curso de Java se evalúa 4 exámenes de las cuales se elimina la menor nota. Hacer un programa para ingresar las notas de los 4 exámenes y reportar la nota eliminada y el promedio final del alumno.

         import java.util.Scanner;

         public class Ejercicio08 {
                  public static double reportarNotaMenor(double nota1, double nota2, double nota3, double nota4){
                             double menorNota = nota1;
                             if(nota2<menorNota)
                                     menorNota = nota2;
                             if(nota3<menorNota)
                                     menorNota = nota3;
                             if(nota4<menorNota)
                                     menorNota = nota4;
                             return menorNota;
                  }
                  public static double calcularPromedio(double nota1, double nota2, double nota3, double nota4){
                             double promedio;
                             promedio = (nota1+nota2+nota3+nota4-reportarNotaMenor(nota1,nota2,nota3,nota4))/3;
                             return promedio;
                  }
                  public static void main(String[] args) {
                             Scanner entrada = new Scanner(System.in);
                             double nota1, nota2, nota3, nota4;
                             System.out.print(«Ingresar nota 1: «);
                             nota1 = entrada.nextDouble();
                             System.out.print(«Ingresar nota 2: «);
                             nota2 = entrada.nextDouble();
                             System.out.print(«Ingresar nota 3: «);
                             nota3 = entrada.nextDouble();
                             System.out.print(«Ingresar nota 4: «);
                             nota4 = entrada.nextDouble();
                             System.out.println(«La nota eliminada es: »
                                                                                            + reportarNotaMenor(nota1,nota2,nota3,nota4));
                             System.out.println(«El promedio final es: »
                                                                                            + calcularPromedio(nota1,nota2,nota3,nota4));
                  }
         }

9) Hacer un programa para ingresar el tiempo recorrido en segundos y calcular la altura que cae un objeto.

                  (H = 0.5 * G * T² )    ,    G = 9.8 m/seg²

         import java.util.Scanner;

         public class Ejercicio09 {
                  public static double calcularAltura(double tiempoSegundos){
                             return 0.5*9.8*Math.pow(tiempoSegundos,2);
                  }
                  public static void main(String[] args) {
                             Scanner entrada = new Scanner(System.in);
                             double tiempoSegundos;
                             System.out.print(«Ingresar el tiempo recorrido en segundos: «);
                             tiempoSegundos = entrada.nextDouble();
                             System.out.println(«La altura es: » + calcularAltura(tiempoSegundos));
                  }
         }

10) Hacer un programa para ingresar un número que represente segundos y determinar a cuanto equivale en horas, minutos y segundos.

Ejemplo: Si se ingresa 9500 segundos el programa debería reportar: 2 horas, 38 minutos y 20 segundos.

         import java.util.Scanner;

         public class Ejercicio10 {
                  public static void reportarHora(int tiempoSegundos){
                             int hora, minutos, segundos;
                             hora = tiempoSegundos/3600;
                             tiempoSegundos = tiempoSegundos%3600;
                             minutos = tiempoSegundos/60;
                             segundos = tiempoSegundos%60;
                             System.out.println(«Equivale a: «+hora+» horas , «+minutos+» minutos , «
                                                                                                      + «»+segundos+» segundos»);
                  }
                  public static void main(String[] args) {
                             Scanner entrada = new Scanner(System.in);
                             int tiempoSegundos;
                             System.out.print(«Ingresar tiempo en segundos: «);
                             tiempoSegundos = entrada.nextInt();
                             reportarHora(tiempoSegundos);
                  }
         }