Ejercicios propuestos y resueltos básicos Java

Hola a todos, hoy os dejo una serie de ejercicios de Java para practicar todo aquello que hemos explicado en anteriores posts.

Todos los ejercicios que proponemos están resueltos en este mismo post, intenta hacerlo por ti mismo y si te quedas atascado puedes mirar la solución. Recuerda, que no tiene por que estar igual tu solución con la del post, el objetivo es que aprendas no que me copies la solución.

El nombre de la aplicación es de tu elección, excepto en el ejercicio 25. Crea un proyecto en Java por ejercicio. Colocare en las soluciones algunos comentarios para que sean más fácilmente entendible.

Te recomiendo que uses mensajes de trazas, donde te sean necesarios. Si tienes problemas también puedes usar el depurador.

Aquí tienes todos los posts relacionados con Java:

Curso Java

También tenemos el curso en formato video:

Si tienes alguna duda, recuerda que puedes consultarnos escribiendo un comentario en este post o enviándonos un e-mail a administrador@discoduroderoer.es

En la página «auriculares-inalambricos.es» podrás obtener auriculares sin cables con los que escuchar música mientras realizas nuestros ejercicios :D.

1) Declara dos variables numéricas (con el valor que desees), muestra por consola la suma, resta, multiplicación, división y módulo (resto de la división).

Spoiler

2) Declara 2 variables numéricas (con el valor que desees), he indica cual es mayor de los dos. Si son iguales indicarlo también. Ves cambiando los valores para comprobar que funciona.

Spoiler

3) Declara un String que contenga tu nombre, después muestra un mensaje de bienvenida por consola. Por ejemplo: si introduzco «Fernando», me aparezca «Bienvenido Fernando».

Spoiler

4) Modifica la aplicación anterior, para que nos pida el nombre que queremos introducir (recuerda usar JOptionPane).

Spoiler

— Versión con Scanner

— Versión con JOptionPane

5) Haz una aplicación que calcule el área de un círculo(pi*R2). El radio se pedirá por teclado (recuerda pasar de String a double con Double.parseDouble). Usa la constante PI y el método pow de Math.

Spoiler

— Versión con Scanner

— Versión con JOptionPane


6) Lee un número por teclado e indica si es divisible entre 2 (resto = 0). Si no lo es, también debemos indicarlo.

Spoiler

— Versión con Scanner

— Versión con JOptionPane

7) Lee un número por teclado y muestra por consola, el carácter al que pertenece en la tabla ASCII. Por ejemplo: si introduzco un 97, me muestre una a.

Spoiler

8) Modifica el ejercicio anterior, para que en lugar de pedir un número, pida un carácter (char) y muestre su código en la tabla ASCII.

Spoiler

— Versión con Scanner

— Versión con JOptionPane

9) Lee un número por teclado que pida el precio de un producto (puede tener decimales) y calcule el precio final con IVA. El IVA sera una constante que sera del 21%.

Spoiler

— Versión con Scanner

— Versión con JOptionPane


10) Muestra los números del 1 al 100 (ambos incluidos). Usa un bucle while.

Spoiler

11) Haz el mismo ejercicio anterior con un bucle for.

Spoiler

12) Muestra los números del 1 al 100 (ambos incluidos) divisibles entre 2 y 3. Utiliza el bucle que desees.

Spoiler
— Con While

— Con For

13) Realiza una aplicación que nos pida un número de ventas a introducir, después nos pedirá tantas ventas por teclado como número de ventas se hayan indicado. Al final mostrara la suma de todas las ventas. Piensa que es lo que se repite y lo que no.

Spoiler

— Versión con Scanner

— Versión con JOptionPane

14) Realiza una aplicación que nos calcule una ecuación de segundo grado. Debes pedir las variables a, b y c por teclado y comprobar antes que el discriminante (operación en la raíz cuadrada). Para la raíz cuadrada usa el método sqlrt de Math. Te recomiendo que uses mensajes de traza.

Spoiler

— Versión con Scanner

— Versión con JOptionPane

15) Lee un número por teclado y comprueba que este numero es mayor o igual que cero, si no lo es lo volverá a pedir (do while), después muestra ese número por consola.

Spoiler

— Versión con Scanner

— Versión con JOptionPane




16) Escribe una aplicación con un String que contenga una contraseña cualquiera. Después se te pedirá que introduzcas la contraseña, con 3 intentos. Cuando aciertes ya no pedirá mas la contraseña y mostrara un mensaje diciendo «Enhorabuena». Piensa bien en la condición de salida (3 intentos y si acierta sale, aunque le queden intentos).

Spoiler

—Versión con Scanner

— Versión con JOptionPane

17) Crea una aplicación que nos pida un día de la semana y que nos diga si es un dia laboral o no. Usa un switch para ello.

Spoiler

— Versión con Scanner

— Versión con JOptionPane

18) Pide por teclado dos número y genera 10 números aleatorios entre esos números. Usa el método Math.random para generar un número entero aleatorio (recuerda el casting de double a int).

Spoiler

— Versión con Scanner

— Versión con JOptionPane

19) Pide por teclado un número entero positivo (debemos controlarlo) y muestra  el número de cifras que tiene. Por ejemplo: si introducimos 1250, nos muestre que tiene 4 cifras. Tendremos que controlar si tiene una o mas cifras, al mostrar el mensaje.

Spoiler

— Versión con Scanner

— Versión con JOptionPane


20) Pide un número por teclado e indica si es un número primo o no. Un número primo es aquel solo puede dividirse entre 1 y si mismo. Por ejemplo: 25 no es primo, ya que 25 es divisible entre 5, sin embargo, 17 si es primo.
Un buen truco para calcular la raíz cuadrada del numero e ir comprobando que si es divisible desde ese numero hasta 1.
NOTA: Si se introduce un numero menor o igual que 1, directamente es no primo.

Spoiler

— Versión con Scanner

— Version con JOptionPane

21) Muestra los números primos entre 1 y 100.

Spoiler

— Versión con Scanner

— Versión con JOptionPane

22) Del siguiente String «La lluvia en Sevilla es una maravilla» cuenta cuantas vocales hay en total (recorre el String con charAt).

Spoiler
23) Reemplaza todas las a del String anterior por una e.

Spoiler

24) Recorre el String del ejercicio 22 y transforma cada carácter a su código ASCII. Muestralos en linea recta, separados por un espacio entre cada carácter.

Spoiler
25) Crea una aplicación llamada CalculadoraPolacaInversaApp, nos pedirá 2 operandos (int) y un signo aritmético (String), según este último se realizara la operación correspondiente. Al final mostrara el resultado en un cuadro de dialogo.

Los signos aritméticos disponibles son:

  • +: suma los dos operandos.
  • -: resta los operandos.
  • *: multiplica los operandos.
  • /: divide los operandos, este debe dar un resultado con decimales (double)
  • ^:  1º operando como base y 2º como exponente.
  • %:  módulo, resto de la división entre operando1 y operando2.
Spoiler

— Versión con Scanner

— Versión con JOptionPane

26) Realizar la suma del 1 al numero que indiquemos, este debe ser mayor que 1.

Spoiler

27)

Crear una aplicación que nos permite insertar números hasta que insertemos un -1. Calcular el numero de números introducidos.

Spoiler

28) Eliminar los espacios de una frase pasada por consola por el usuario.

Spoiler

29) Pedir al usuario que nos escriba frases de forma infinita hasta que insertemos una cadena vacia. Mostrar la cadena resultante

Spoiler

30)

Convertir una frase a mayúsculas o minúsculas, que daremos opción a que el usuario lo pida y mostraremos el resultado por pantalla.

Spoiler

— Version 1

— Version 2

31) Mostrar la longitud de una cadena.

Spoiler

32) Pedir dos palabras por teclado, indicar si son iguales.

Spoiler

33) Dada una cadena, extraer la cuarta y quinta letra usando el método substring.

Spoiler

34)

Dada una frase, separarlo en palabras.

Spoiler

35) Crea un enum con los días de la semana, pide un día de la semana e indica si es laboral o no (en el main).

Spoiler

— Dia de la semana

— Main

36) Modifica el anterior enum para indicar que es día laborable directamente (usar toString).

Spoiler

— DiaSemana

— Main

37) Crea el enum Mes, que contenga como parametros el orden(1,2,3,etc) y el numero de dias (febrero tendra 28 dias siempre).

Estos datos pueden pedirse por separado, asi que tienes que hacer sus respectivos get. No son necesarios los setters.

Create un arrays de Mes (mirate la funcion values), pide un numero por teclado e indica que meses tienen ese numero de dias (toda su informacion).

Por ejemplo, si escribes un 28, este te devolvera la informacion de FEBRERO.

Spoiler

— Mes

— Principal

38) Pedir números al usuario y cuando el usuario meta un -1 se terminará el programa.
Al terminar, mostrará lo siguiente:
– mayor numero introducido
– menor numero introducido
– suma de todos los numeros
– suma de los numeros positivos
– suma de los numeros negativos
– media de la suma (la primera que pido)

El número -1 no contara como número.

Spoiler

39)

Realiza un reloj digital que muestre la hora sin parar.

Debe esperar un segundo real para darle mas realismo.

Spoiler

También os dejamos videos de nuestro canal de YouTube para que veais como se hace paso a paso.

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

10 comentarios

  1. Manuel David González

    como me podrían ayudar con este algoritmo?

    la empresa SOBUSA desea liquidar las ventas de sus conduictores segun la siguiente informacion:
    Se liquidara solamente los DIAS FESTIVOS y si la RUTA ES 1 , 12% DE LAS VENTAS; SI LA RUTA ES 2, EL 14% DE LAS VENTAS;SI LA RATA ES 4, 14% DE LAS VENTAS

  2. Maria Lopez

    NECESITO ESTAS 2 FUNCIONES SI ALGUIEN SABE

    /**
    * The ISO date format is a standard format that displays the dates
    * starting with the year , followed by the month and the day , i.e. ,
    * «YYYY -MM -DD «. For example , in that format the text » July 28 , 2006″
    * would be represented as «2006 -07 -28″.
    * The » convertToISO » method converts a date in the » Month DD , AAAA »
    * format to its ISO representation . For simplicity , let us assume that
    * the values are correctly formatted even if the date is invalid
    * (e.g., » February 31 , 2006″ is correctly formatted but it is not a valid date )
    *
    * @param dateText Date in textual format ( USA style ).
    * @return A string with the given date in ISO format .
    */

    public static String convertToISODate ( String dateText ) { /* … */ }

    /**
    * Given a String representing an ISO – formatted date , the methods checks
    * its validity . This includes checking for non – valid characters , erroneous
    * string lengths , and the validity of the date itself (i.e. , checking the
    * number of days of the month ).
    * @param ISODate A date in ISO format
    * @return True if the ISO – formatted date is a valid date , False otherwise .
    */

    public static boolean checkISODate ( String ISODate ) { /* … */ }

  3. Maria Lopez

    NECESITO SI ALGUIEN SABE ALGUNA

    Desarrolla un registro Triangle que represente el funcionamiento b´asico de los
    tri´angulos y que incluya los siguientes metodos:

    /**
    * Constructs a Triangle object given its three internal angles
    * It is the canonical constructor .
    * @param angle0 Angle 0
    * @param angle1 Angle 1
    * @param angle2 Angle 2
    * @throws IllegalArgumentException if the angles do not sum 180 degrees
    */
    public Triangle { /* … */ }
    /**
    * Copy constructor . Constructs a Triangle using another Triangle .
    * @param t The Triangle object to copy .
    */
    public Triangle ( Triangle t) { /* … */ }
    /**
    * Tests if a triangle is right .
    * A right triangle has one of its angles measuring 90 degrees .
    * @return True if it is right , false otherwise
    */
    public boolean isRight () { /* … */ }
    /**
    * Tests if a triangle is acute .
    * A triangle is acute if all angles measure less than 90 degrees .
    * @return True if it is acute , false otherwise
    */
    public boolean isAcute () { /* … */ }
    /**
    * Tests if a triangle is obtuse .
    * A triangle is obtuse if it has one angle measuring more than 90 degrees .
    * @return True if it is obtuse , false otherwise
    */
    public boolean isObtuse () { /* … */ }
    /**
    * Tests if a triangle is equilateral .
    * A triangle is equilateral if all the angles are the same .
    * @return True if it is equilateral , false otherwise
    */
    public boolean isEquilateral () { /* … */ }
    /**
    * Tests if a triangle is isosceles .
    * A triangle is isosceles if it has two angles of the same measure .
    * @return True if it is isosceles , false otherwise
    */

    public boolean isIsosceles () { /* … */ }
    /**
    * Tests if a triangle is scalene .
    * A triangle is scalene if it has all angles of different measure .
    * @return True if it is scalene , false otherwise
    */
    public boolean isScalene () { /* … */ }
    /**
    * Tests if two triangles are equal .
    * Two triangles are equal if their angles are the same ,
    * regardless of the order .
    * @param o The reference object with which to compare .
    * @return True if they are equal , false otherwise .
    */
    @Override
    public boolean equals ( Object o) { /* … */ }

  4. victor ordoñez

    hola buenas tardes, quiero saber como se hace el siguiente problema en java, es urgente… espero me puedan ayudar

    Una caja de compensación familiar del Valle del Cauca, le ha solicitado a usted desarrollar un programa en Java OO (orientado a objetos) que le ayude a calcular el valor del subsidio para vivienda de interés social al que tiene derecho una persona de acuerdo a unos requisitos. La caja de compensación ha determinado un monto básico para el subsidio dependiendo del nivel salarial de la persona de la siguiente manera:
    Salario mensual menor o igual a $400.000, monto básico de subsidio $7.000.000.
    Salario mensual mayor a $400.000 y menor o igual a $1.000.000, monto básico de subsidio $6.500.000.
    Salario mensual mayor a $1.000.000 y menor o igual a $1.500.000, monto básico de subsidio $4.000.000.
    Salarios mayores a $1.500.000, no tienen derecho a subsidio.

    Además del monto básico del subsidio, se ha estipulado una ayuda adicional, dependiendo del estrato al que pertenezca la persona. Las ayudas por estrato se presentan en la siguiente tabla:
    Estrato 1: $3.000.000
    Estrato 2: $2.500.000
    Estrato 3: $2.000.000 si la persona tiene personas a cargo en caso contrario la ayuda adicional es de $1.500.000
    Estratos 4, 5 o 6: No tienen ayuda adicional

  5. katherinne badilla

    Buenas necesito saber como se resuelve lo siguiente:
    El consulado de Argentina ha establecido entregar visas para ingresar a su país únicamente a las personas
    que cumplan con los siguientes requisitos:
    • Si la persona es soltera, debe tener más de un año de laborar y además debe tener una propiedad
    con un valor superior a cinco millones de pesos argentinos o un vehículo con valor superior a
    setecientos mil pesos argentinos.
    • Si es casado debe tener al menos 3 años de matrimonio y al menos un hijo.
    El representante deberá ingresar en el sistema los siguientes datos del solicitante: nombre y estado civil
    (que será un valor numérico donde 1 es soltero y 2 es divorciado, y con base en su estado civil debe
    solicitar ya sea los años de matrimonio, años de laborar, cantidad de hijos, y el valor de la propiedad o del
    vehículo (el solicitante debe indicar si es vehículo o propiedad y su respectivo valor).
    Debe imprimirse un mensaje indicando si se le otorga la visa o no.

  6. dayron antonio

    esta super bien me ayuda a a hacer mis trabajos que me dejo el profesor
    10/10 y God

  7. Joel Martín

    Aver buey explica bien como se hace el ejercicio 7 y 8, no somos adivinos para saber qué hiciste… Es obvio que es fácil sabiendo lo que haces. Por lo demás hasta ahora buenos ejercicios

  8. segundo

    es de mucha ayuda para los que queremos reforzar nuestros conocimientos en java y estos ejercicios son de mucha ayuda, muchisimas gracias, y lo resuelto es una guia para cuando no sabemos como continuar

  9. segundo

    import java.util.Scanner;

    /*Lee un número por teclado y muestra por consola,
    * el carácter al que pertenece en la tabla ASCII. Por ejemplo: si introduzco un 97, me muestre una a.*/

    public class Ejercicio5 {

    public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    char caracter;
    int codigo;
    System.out.println(«Por favor introduce un codigo:»);
    codigo = in.nextInt();

    caracter = (char) codigo;
    System.out.println(«El codigo ASCII es: «+caracter);

    }

    }
    ESTA ES LA DEL EJERCICIO NUMERO 7

  10. Gerardo Castellanos

    En ejercicio: 12) Se pide: Muestra los números del 1 al 100 (ambos incluidos) divisibles entre 2 y 3. Utiliza el bucle que desees.
    Si son los divisibles entre 2 y 3, se debe usar el conector condicional &
    Si por el contarrio se desea aquellos divisibles por 2 o por 3, se usa el conector ||

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Warning: Trying to access array offset on value of type null in /home2/discodur/public_html/discoduroderoer/wp-content/themes/disto/single.php on line 539