Página Principal -

Ejercicios de Programación - Hoja 1



  1. Escribe un programa que lea 4 números enteros. Los dos primeros corresponden a la posición que ocupa una pieza de ajedrez (fila y columna, entre 1 y 8), y los dos últimos a la nueva posición a la que se desea mover. El programa debe contestar por pantalla a las siguientes preguntas:
    1. ¿Es posible el movimiento si la pieza se trata de una torre? (Es posible si están en la misma fila o la misma columna)
    2. ¿Es posible el movimiento si la pieza se trata de un alfil? (Es posible si ambas casillas están en la misma diagonal de izquierda a derecha o de derecha a izquierda)
    3. ¿Es posible el movimiento si la pieza se trata de un caballo? (Es posible si hay una diferencia de dos casillas en horizontal y una en vertical, o dos en vertical y una en horizontal)
    4. ¿Es posible el movimiento si la pieza se trata de la reina? (Puede realizar los movimientos de la torre más los del alfil)
    5. ¿Es posible el movimiento si la pieza se trata del rey? (Puede desplazarse a una casilla contigua tanto en la horizontal como en la vertical como en la diagonal)
    Nota: Para calcular el valor absoluto de una expresión e se puede escribir en Java Math.abs(e)

  2. La expresión System.currentTimeMillis() devuelve en Java el número de milisegundos que han pasado desde las 0 horas del 1 de Enero de 1970 (!!). Podemos almacenar este valor en un entero "largo" (tipo long) antes y después de un bloque de código para saber cuánto ha tardado éste en ejecutarse:
     
         long antes = System.currentTimeMillis(); 
         // por aquí instrucciones
         .....
         long después = System.currentTimeMillis(); 
         System.out.println("Tiempo: "+después-antes+" milisegundos");
         
    Escribir un programa que pida al usuario que pulse enter dos veces dejando entre la primera y la segunda pulsación 5 segundos. Hacer que el programa le indique en cuánto se ha equivocado, tanto en milisegundos como en tanto por ciento. El error en tiempo puede ser un número negativo (indicando que se ha "quedado corto") pero el tanto por ciento siempre será un número real (es decir, deben mostrarse los decimales) positivo. Ejemplo:
      Pulsa enter dos veces con 5 segundos entre medias
    
    
        Error en tiempo: -1144 milisegundos
        Error en %: 22.88 % 
    Nota: Para esperar a que se pulse enter utilizar el método nextLine() de la clase Scanner.

  3. En un sistema hay 3 usuarios: Bertoldo (password "berti") , Herminia (password "flor76") y Clodoveo (password "tigreton"). Escribir un programa que pregunte el nombre del usuario y la clave. Si los datos corresponden a los de alguno de los usuarios el programa escribirá por pantalla un saludo aadecuado (por ejemplo "Hola Herminia"). Si los datos no son correctos se volverán a pedir los datos.

  4. Escribe un programa que calcule el factorial de un número entero positivo introducido por el usuario.

  5. Escribir un programa que lea números enteros de teclado y escriba la media aritmética (con decimales). El usuario introducirá un número negativo para indicar que la lista de números ha terminado (el número negativo no se tendrá en cuenta para calcular la media).

  6. Un número entero positivo se dice perfecto cuando es igual a la suma de sus divisores exceptuando a el mismo. Por ejemplo 6=1+2+3 y 28=1+2+4+7+14 son números perfectos. Escribir un programa que:
    1. Pida un número entero n al usuario
    2. Muestre por pantalla la lista de todos los números perfectos menores o iguales que n.


- Página Principal