INDICE | ANTERIOR | SIGUIENTE PÁGINA PERSONAL

Problemas del Curso de Formación del Profesorado

 

Problema No. 1

Desarrollar una aplicación Java que convierta un valor en pesetas a euros (suponiendo un cambio de 1 euro = 166,387 pts). El valor se pide por teclado.
  import java.io.*;

  public class Problema1
  {
    public static void main( String[] args ) throws Exception
    {
       BufferedReader teclado;
       long pesetas;
       double euros;
       String linea;

       teclado = new BufferedReader( new InputStreamReader(System.in) );

       System.out.print("Cantidad (pts): ");
       linea = teclado.readLine();
       pesetas = Integer.parseInt(linea);
       euros = pesetas/166.387;
       System.out.println(pesetas+" pts. corresponden a "+euros+" euros.");
    }
  }

Problema No. 2

Modificar el programa anterior para que detecte si el usuario no introduce un texto que se pueda convertir a un valor e imprima el mensaje "No ha introducido un valor correcto".
  import java.io.*;

  public class Problema2
  {
    public static void main( String[] args ) throws Exception
    {
       BufferedReader teclado;
       long pesetas;
       double euros;
       String linea;

       teclado = new BufferedReader( new InputStreamReader(System.in) );

       System.out.print("Cantidad (pts): ");
       linea = teclado.readLine();
       try {
         pesetas = Integer.parseInt(linea);
         euros = pesetas/166.387;
         System.out.println(pesetas+" pts. corresponden a "+euros+" euros.");
       } catch( Exception e ) {
         System.out.println("No ha introducido un valor correcto.");
       }
    }
  }

Problema No. 3

Modificar el programa anterior para que convierta indistintamente de euros a pesetas y de pesetas a euros basandose en si en la linea que introduce el usuario aparece la cadena "pts" o "euros". Si la linea no se ajusta al esquema anterior, debera imprimir un mensaje explicando cual es el formato correcto.
  import java.io.*;

  public class Problema3
  {
    public static void main( String[] args ) throws Exception
    {
       BufferedReader teclado;
       long pesetas;
       double euros;
       String linea;
       int n;

       teclado = new BufferedReader( new InputStreamReader(System.in) );

       System.out.print("Cantidad: ");
       linea = teclado.readLine().toUpperCase();
       if( linea.endsWith(" PTS") ) {
         n = linea.indexOf(" PTS");
         linea = linea.substring(0,n);
         try {
           pesetas = Integer.parseInt(linea);
           euros = pesetas/166.387;
           System.out.println(euros+" euros");
         } catch( Exception e ) {
           System.out.println("'"+linea+"' no es un numero entero valido.");
         }
       } else if( linea.endsWith(" EUROS") ) {
         n = linea.indexOf(" EUROS");
         linea = linea.substring(0,n);
         try {
           euros = Double.valueOf(linea).doubleValue();
           pesetas = Math.round(euros*166.387);
           System.out.println(pesetas+" pts");
         } catch( Exception e ) {
           System.out.println("'"+linea+"' no es un numero real valido.");
         }
       } else {
         System.out.println("La linea debe terminar con 'pts' o 'euros'");
       }
    }
  }

Problema No. 4

Crear un programa que adivine un numero entre 1 y 1000 en base a ir acotando su posible valor mediante la pregunta de si el número es menor que otro.
  import java.io.*;

  public class Problema4
  {
     public static void main( String[] args ) throws Exception
     {
       BufferedReader teclado;
       int min = 0;
       int max = 1000;
       int med;
       char resp;
       String linea;

       teclado = new BufferedReader( new InputStreamReader(System.in) );

       System.out.println("*** ADIVINA UN NUMERO ***");
       System.out.println("");
       System.out.println("Piense un numero de 1 a 1000");
       do {
         med = (min+max)/2;
         System.out.print("Es menor de "+med+"? [S/N] ");
         linea = teclado.readLine().toUpperCase();
         resp = linea.charAt(0);
         if( resp == 'S' )
           max = med-1;
         else
           min = med;
       } while( max>min );
       System.out.println("LO TENGO! La respuesta es "+max+".");
     }
  }

Problema No. 5

Crear un programa que calcule el máximo comun divisor de dos valores mediante el algoritmo de euclides. Implementar el algoritmo mediante una función.
  import java.io.*;

  public class Problema5
  {
     public static void main( String[] args )
     {
        new Problema5();
     }

     public Problema5( )
     {
        BufferedReader teclado;
        String linea;
        int a,b,x;

        teclado = new BufferedReader( new InputStreamReader(System.in) );
        System.out.print("Escriba el primer valor: ");
        linea = teclado.readLine();
        try {
          a = Integer.parseInt(linea);
          System.out.print("Escriba el segundo valor: ");
          linea = teclado.readLine();
          b = Integer.parseInt(linea);
          x = mcd(a,b);
          System.out.println("El m.c.d. es "+x);
        } catch( Exception e ) {
          System.out.println("El valor introducido es erroneo.");
        }
     }

     // Algoritmo de Euclides
     public int mcd( int x, int y )
     {
        int a,b;

        a = x;
        b = y;
        while( a != b ) {
           if( a < b ) {
             b = b - a;
           } else {
             a = a - b;
           }
        }
        return(a);
     }
  }

Problema No. 6

Crear un applet que realize las tareas de conversión de euros a pesetas.
  • Código fuente del programa.
  •  


      INDICE | ANTERIOR | SIGUIENTE