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. julian

    Como puedo encontrar la posición de varios números en un array en java;
    digamos que tengo un arreglo de N elementos y al introducir un numero x me tenga que mostrar la posicion que ocupa ese numero en el arreglo y si el numero x que introduje esta varias veces en el arreglo me muestre todas las posiciones en las que esta.
    alguien sabe como plantearlo ??

  2. computacion

    1. Se pretende realizar una aplicación para esta facultad que gestione la
    información sobre las personas vinculadas con la misma, que se pueden
    clasificar en tres tipos: estudiantes, profesores y personal de servicio.
    A continuación, se detalla qué tipo de información debe gestionar esta
    aplicación:
    • Por cada persona, se debe conocer, al menos, su nombre y apellidos, su
    número de identificación y su estado civil.
    • Con respecto a los empleados, sean del tipo que sean, hay que saber su
    año de incorporación a la facultad y qué número de despacho tienen
    asignado.
    • En cuanto a los estudiantes, se requiere almacenar el curso en el que
    están matriculados.
    • Por lo que se refiere a los profesores, es necesario gestionar a qué
    departamento pertenecen (lenguajes, matemáticas, arquitectura, …).
    • Sobre el personal de servicio, hay que conocer a qué sección están
    asignados (biblioteca, decanato, secretaría, …).
    El ejercicio consiste, en primer lugar, en definir la jerarquía de clases de esta
    aplicación. A continuación, debe programar las clases definidas en las que,
    además de los constructores, hay que desarrollar los métodos correspondientes a
    las siguientes acciones:
    • Cambio del estado civil de una persona.
    • Reasignación de despacho a un empleado.
    • Matriculación de un estudiante en un nuevo curso.
    • Cambio de departamento de un profesor.
    • Traslado de sección de un empleado del personal de servicio.
    • Imprimir toda la información de cada tipo de individuo.
    Incluya un programa de prueba que instancie objetos de los distintos tipos y
    pruebe los métodos desarrollados.

  3. Carlos Perez

    1.De un número indeterminado de personas se pide leer su estatura; el número de personas
    será introducido por el usuario y debe controlarse que sea un entero positivo. De acuerdo
    con ese número de personas y sus estaturas calcular lo siguiente:
    a. La estatura promedio.
    b. Calcular cuántas personas tienen una estatura superior al promedio
    c. Calcular cuántas personas tienen una estatura inferior al promedio.
    d. Mostrar cuál es la estatura máxima.
    e. Mostrar cuál es la estatura mínima.

    2. Se pide construir una clase con el nombre ClaseAlumnos, dicha clase tendrá como atributos
    los siguientes:
    DocIdentidad→ tipo integer
    NomAlumno→ Tipo string
    Materia→ Tipo String
    Notas→ tipo Double

    En dicha clase, se deben definir unos métodos de la siguiente forma:
    a) Un método que permita capturar los datos de los estudiantes con sus materias y notas
    b) Un método que de acuerdo con el alumno que se envíe como parámetro
    (DocIdentidad), devuelva las materias que tiene asignadas y las notas correspondientes.
    c) Un método que calcule el promedio total de cada estudiante de acuerdo con el número
    de materias que tiene ingresadas.

    En el programa principal, debe aparecer un menú con las siguientes opciones:
    • Ingreso de información: Esta opción captura por teclado la información y llena
    el vector definido como tipo Objeto con la información relacionada en
    ClaseAlumnos.
    • Consulta Materias por Alumno: En esta opción se envía como parámetro
    un documento que se ingrese por pantalla y busca en el vector creado si
    existe datos para ese documento. En caso afirmativo devuelve los datos
    de las materias y notas correspondientes y en caso de que no existe
    muestra el mensaje “Alumno no existe”.
    • Consulte Promedio de estudiantes: Al seleccionar esta opción se deberá
    mostrar por pantalla los alumnos con su promedio (no se muestran las
    materias)

    3. Crear dos matrices de 2×2 y llenarla con valores ingresados por teclado. Una vez las
    matrices estén llenas, debe de mostrarse una tercera matriz cuyos datos será la suma de las
    posiciones iguales de las matrices anteriores. Se debe mostrar por pantalla las 3 matrices.
    Ejemplo
    Matriz 1 Matriz 2 Matriz Resultado
    2 1 3 4 5 5
    3 4 6 5 9 9

    4.Crear un programa que pida por pantalla cuatro ciudades y a continuación tres
    municipios de cada una de estas ciudades. Los nombres de ciudades y municipios deben
    almacenarse en un array multidimensional. Luego de ingresarlos por pantalla se deberá
    mostrar por pantalla el arreglo lleno. Ejemplo de lo que se debe visualizar:
    [MEDELLÍN-ENVIGADO, MEDELLÍN-SABANETA, MEDELLÍN-CALDAS]
    [CALI-BUENAVENTURA, CALI-BUGA, CALI-ANDALUCÍA]
    [BARRANQUILLA-MALAMBO, BARRANQUILLA-BARANOA, BARRANQUILLA-GALAPA]
    5. Crear un programa donde se defina una matriz de 8×6 e imprima por pantalla la matriz
    rellena de “*” en su marco exterior y “x” en parte interior

  4. Carlos Perez

    1.De un número indeterminado de personas se pide leer su estatura; el número de personas
    será introducido por el usuario y debe controlarse que sea un entero positivo. De acuerdo
    con ese número de personas y sus estaturas calcular lo siguiente:
    a. La estatura promedio.
    b. Calcular cuántas personas tienen una estatura superior al promedio
    c. Calcular cuántas personas tienen una estatura inferior al promedio.
    d. Mostrar cuál es la estatura máxima.
    e. Mostrar cuál es la estatura mínima.

    2. Se pide construir una clase con el nombre ClaseAlumnos, dicha clase tendrá como atributos
    los siguientes:
    DocIdentidad→ tipo integer
    NomAlumno→ Tipo string
    Materia→ Tipo String
    Notas→ tipo Double

    En dicha clase, se deben definir unos métodos de la siguiente forma:
    a) Un método que permita capturar los datos de los estudiantes con sus materias y notas
    b) Un método que de acuerdo con el alumno que se envíe como parámetro
    (DocIdentidad), devuelva las materias que tiene asignadas y las notas correspondientes.
    c) Un método que calcule el promedio total de cada estudiante de acuerdo con el número
    de materias que tiene ingresadas.

    En el programa principal, debe aparecer un menú con las siguientes opciones:
    • Ingreso de información: Esta opción captura por teclado la información y llena
    el vector definido como tipo Objeto con la información relacionada en
    ClaseAlumnos.
    • Consulta Materias por Alumno: En esta opción se envía como parámetro
    un documento que se ingrese por pantalla y busca en el vector creado si
    existe datos para ese documento. En caso afirmativo devuelve los datos
    de las materias y notas correspondientes y en caso de que no existe
    muestra el mensaje “Alumno no existe”.
    • Consulte Promedio de estudiantes: Al seleccionar esta opción se deberá
    mostrar por pantalla los alumnos con su promedio (no se muestran las
    materias)

    3. Crear dos matrices de 2×2 y llenarla con valores ingresados por teclado. Una vez las
    matrices estén llenas, debe de mostrarse una tercera matriz cuyos datos será la suma de las
    posiciones iguales de las matrices anteriores. Se debe mostrar por pantalla las 3 matrices.
    Ejemplo
    Matriz 1 Matriz 2 Matriz Resultado
    2 1 3 4 5 5
    3 4 6 5 9 9

    4.Crear un programa que pida por pantalla cuatro ciudades y a continuación tres
    municipios de cada una de estas ciudades. Los nombres de ciudades y municipios deben
    almacenarse en un array multidimensional. Luego de ingresarlos por pantalla se deberá
    mostrar por pantalla el arreglo lleno. Ejemplo de lo que se debe visualizar:
    [MEDELLÍN-ENVIGADO, MEDELLÍN-SABANETA, MEDELLÍN-CALDAS]
    [CALI-BUENAVENTURA, CALI-BUGA, CALI-ANDALUCÍA]
    [BARRANQUILLA-MALAMBO, BARRANQUILLA-BARANOA, BARRANQUILLA-GALAPA]
    5. Crear un programa donde se defina una matriz de 8×6 e imprima por pantalla la matriz
    rellena de “*” en su marco exterior y “x” en parte interior

  5. diego

    Diseñe un programa que determine la categoría de un estudiante en base a su promedio, de acuerdo a la siguiente tabla:
    Promedio
    Categoría
    20 – 17
    16 – 14
    13 – 12
    11 – 0
    A
    B
    C
    D

    COMO LO HAGO EN JAVA AYUDAAAA

  6. Zabat

    Hacer un programa que ingrese números y muestre cuales de ellos son menores que 100 (con while), se terminará al ingresar un 999.

  7. Brayan Barrios

    necesito ayuda con este programa se los agradecería.

    El órgano judicial le solicita que usted desarrolle una aplicación que le permita contabilizar la cantidad de juicios ganados por los defensor de oficio de un juzgado, cada defensor tiene a la semana 5 juicios con el objetivo de bajar la mora judicial, cada juicio cuenta con 7 jurados de conciencia, el veredicto dado por cada jurado se encuentra almacenado en un arreglo llamado veredicto, en el mismo se encuentra la palabra SI si lo consideran culpable y NO si lo consideran inocente, cada jurado. Ahora considere los siguientes lineamientos para los procesos:

    Determine cuál fue el veredicto, para determinar el veredicto el valor que obtenga el mayor puntaje gana, y debe decir inocente o culpable.
    Guarde el veredicto obtenida en un arreglo llamado juicio.
    Al final se quiere que indique de los juicios en los que participo el defensor cuantos gano.

  8. rossi

    hola me pueden ayudar con esto soy principiante y me hago lio con las clases metodos como llamarlos desde otra clase me han dicho q use metodos para hacer mas simplificada las clases pero es q me hago un lio.

    ayudenmen en esto
    Objectius – Practicar funcionalitats bàsiques com variables, bucles i arrays.

    Entrega Enviar la URL al repositori que conté la solució per Slack als mentors. S’ha d’entregar cada Fase per separat en un mateix repositori.

    Temps 2 dies

    Recursos Videos: Pildoras informaticas videos del 14 al 21 y 36 al 40 Texto: Introduccion C# y javascript (punto 2.2)

    Exercici:

    L’exercici consisteix en mostrar per consola diferents noms de ciutats partint d’un array i modificar els noms canviant lletres posant a proba la teva capacitat algoritmica.

    FASE 1

    ● Crea sis variables tipu string buides.

    ● Demana per consola que s’introdueixin els noms.

    ● Introdueix els següents noms de ciutats (Barcelona, Madrid, Valencia, Malaga, Cadis, Santander) per teclat.

    ● Mostra per consola el nom de les 6 ciutats.

    FASE 2

    ● Un cop tenim els noms de les ciutats guardats en variables haurem de pasar l’informacio a un array (arrayCiutats).

    ● Quan tinguem l’array ple, haurem de mostrar per consola el nom de les ciutats ordenadas per ordre alfabetic. [No utilitzis LINQ]

    FASE 3

    ● Cambieu les vocals “a” dels noms de les ciutats per el numero 4 i guardeu els noms modificats en un nou array(ArrayCiutatsModificades).

    ● Mostreu per consola l’array modificat i ordenat per ordre alfabetic.

    FASE 4

    ● Creeu un nou array per cada una de les ciutats que tenim. La mida dels nous arrays sera la llargada de cada string ( string nomCiutat.Length).

    ● Ompliu els nous arrays lletra per lletra.

    ● Mostreu per consola els nous arrays amb els noms invertits (Ex: Barcelona – anolecraB).

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