Ejercicios propuestos y resueltos arrays de Java

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

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

Te dejo nuestro curso java para las dudas:

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

1) Crea un array de 10 posiciones de números con valores pedidos por teclado. Muestra por consola el indice y el valor al que corresponde. Haz dos métodos, uno para rellenar valores y otro para mostrar.

Spoiler

2)

Crea un array de números donde le indicamos por teclado el tamaño del array, rellenaremos el array con números aleatorios entre 0 y 9, al final muestra por pantalla el valor de cada posición y la suma de todos los valores. Haz un método para rellenar el array (que tenga como parámetros los números entre los que tenga que generar), para mostrar el contenido y la suma del array y un método privado para generar número aleatorio (lo puedes usar para otros ejercicios).

Spoiler

3) Crea un array de números de un tamaño pasado por teclado, el array contendrá números aleatorios primos entre los números deseados, por último nos indica cual es el mayor de todos.

Haz un método para comprobar que el número aleatorio es primo, puedes hacer todos lo métodos que necesites.

Spoiler

4) Crea un array de números de 100 posiciones, que contendrá los números del 1 al 100. Obtén la suma de todos ellos y la media.

Spoiler




5) Crea un array de caracteres que contenga de la ‘A’ a la ‘Z’ (solo las mayúsculas). Después, ve pidiendo posiciones del array por teclado y si la posicion es correcta, se añadira a una cadena que se mostrara al final, se dejará de insertar cuando se introduzca un -1.

Por ejemplo, si escribo los siguientes numeros
0 //Añadira la ‘A’
5 //Añadira la ‘F’
25 //Añadira la ‘Z’
50 //Error, inserte otro numero
-1 //fin

Cadena resultante: AFZ

Spoiler




6) Pide al usuario por teclado una frase y pasa sus caracteres a un array de caracteres. Puedes hacer con o sin métodos de String.

Spoiler

–Version 1: sin metodos de String

–Version 2: con metodos String

7) Crea dos arrays de números con una posición pasado por teclado.

Uno de ellos estará rellenado con números aleatorios y el otro apuntara al array anterior, después crea un nuevo array con el primer array (usa de nuevo new con el primer array) con el mismo tamaño que se ha pasado por teclado, rellenalo de nuevo con números aleatorios.

Después, crea un método que tenga como parámetros, los dos arrays y devuelva uno nuevo con la multiplicación de la posición 0 del array1 con el del array2 y así sucesivamente. Por último, muestra el contenido de cada array.

Llama al final al recolector de basura.

Spoiler




8) Crea un array de números de un tamaño pasado por teclado, el array contendrá números aleatorios entre 1 y 300 y mostrar aquellos números que acaben en un dígito que nosotros le indiquemos por teclado (debes controlar que se introduce un numero correcto), estos deben guardarse en un nuevo array.

Por ejemplo, en un array de 10 posiciones e indicamos mostrar los números acabados en 5, podría salir 155, 25, etc.

Spoiler

9) Calcula la letra de un DNI, pediremos el DNI por teclado y nos devolverá el DNI completo.

Para calcular la letra, cogeremos el resto de dividir nuestro dni entre 23el resultado debe estar entre 0 y 22. Haz un método donde según el resultado de la anterior formula busque en un array de caracteres la posición que corresponda a la letra. Esta es la tabla de caracteres:

PosicionLetra
0T
1R
2W
3A
4G
5M
6Y
7F
8P
9D
10X
11B
12N
13J
14Z
15S
16Q
17V
18H
19L
20C
21K
22E

Por ejemplo, si introduzco 70588387, el resultado sera de 7 que corresponde a ‘F’.

Spoiler

10) Crea un array de números y otro de String de 10 posiciones donde insertaremos notas entre 0 y 10 (debemos controlar que inserte una nota valida), pudiendo ser decimal la nota en el array de números, en el de Strings se insertaran los nombres de los alumnos.

Después, crearemos un array de String donde insertaremos el resultado de la nota con palabras.

  • Si la nota esta entre 0 y 4,99 , sera un suspenso
  • Si esta entre 5 y 6,99 , sera un bien.
  • Si esta entre 7 y 8,99 sera un notable.
  • Si esta entre 9 y 10 sera un sobresaliente.

Muestra por pantalla, el alumno su nota y su resultado en palabras. Crea los métodos que creas conveniente.

Spoiler

11) Crea una aplicación que pida un numero por teclado y después comprobaremos si el numero introducido es capicua, es decir, que se lee igual sin importar la dirección. Por ejemplo, si introducimos 30303 es capicua, si introducimos 30430 no es capicua. Piensa como puedes dar la vuelta al número. Una forma de pasar un número a un array es esta Character.getNumericValue(cadena.charAt(posicion)).
Spoiler

12) Dado un array de números de 5 posiciones con los siguiente valores {1,2,3,4,5}, guardar los valores de este array en otro array distinto pero con los valores invertidos, es decir, que el segundo array debera tener los valores {5,4,3,2,1}.

Spoiler

13)

Rellenar un array de numeros (int) usando el metodo fill de Arrays.

Spoiler

14) Crear dos arrays, rellenar uno con números y copiarlo al otro usando CopyOf de Arrays.

Spoiler

15) Indica si dos arrays creados por ti son iguales con Equals de Arrays.

Spoiler

16) Ordena un array de números con Sort de Arrays.

Spoiler

17)

Ordenar un array de números con el método de la burbuja.

Spoiler

18) Ordenar un array de números con el método QuickSort.

Spoiler

19)

Ordenar un array de cadenas con el método Quicksort.

Spoiler

20) Ordenar un array de números con el método que quieras y hacer una búsqueda binaria de cualquier numero.

Spoiler

21) 

Vamos a crear el juego del ahorcado por consola.

Al inicio del programa, pedirá los nombres de los dos jugadores. El primer turno será para el jugador 1.

Uno escribe una palabra y el otro la adivina, si este la adivina obtendrá un punto y escribirá una palabra, sino lo acierta el jugador actual suma un punto y escribe de nuevo otra palabra.

Cuando el jugador inserte su palabra también deberá añadir una pequeña pista, por ejemplo si la palabra es Madrid, la pista puede ser «Ciudad».

El jugador que tenga que acertar la palabra tendrá seis oportunidades (cabeza, cuerpo, brazos y piernas). No es necesario dibujar nada por pantalla, solo mostrar el número de oportunidades restantes.

Deberá mostrase los caracteres que el usuario inserta para esa palabra, para evitar que las repita, en caso de que lo haga, avisarle y no contar como error.

Cada vez que acierte o no la palabra, deberá mostrar la puntuación de ambos. El primero que llegue a 3 puntos gana.

Puedes usar todos los medios a tu alcance.

Spoiler

22) Generar un arreglo con numero aleatorios no repetidos entre sí.

Spoiler

23) Teniendo un vector con los valores que queramos, meter en otro de la misma longitud,
aquellos que sean pares y mayores que 25.

Después, mostrar el vector de origen y el de destino, solo los numero introducidos.

Spoiler

24) 

Se quiere simular un juego en el que participan N jugadores y otra persona que hace de árbitro. Cada jugador elige 4 números en el rango [1, 10], pudiendo estar repetidos. A continuación, el árbitro, sin conocer los números que ha elegido cada jugador, selecciona 2 números A y B.

El programa debe ser capaz de calcular cuántos números de los seleccionados por cada jugador están comprendidos entre los valores A y B. Ganará el jugador que más números tenga en dicho intervalo.

Se pide implementar un programa modular que simule el juego para 3 jugadores, teniendo en cuenta que:

  • Tanto los 4 datos de cada jugador, como los valores para A y B se introducirán por teclado. En todos los casos, el programa detectará la entrada de números erróneos, solicitando nuevamente el dato hasta que sea válido.
  • Se deben mostrar por pantalla no solo los aciertos de cada jugador sino los datos que ha introducido cada jugador y los que ha seleccionado el árbitro. Por último, hay que imprimir la media aritmética de los aciertos de todos los jugadores
Spoiler

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

Compartir

9 comentarios

  1. Lucas

    Hola, antes que nada muchas gracias por tu curso de Udemy, lo estoy sigueindo y esta muy interesante, estoy aprendiendo bastante.

    Para el ejercicio 8 lo que se puede hacer directamente es sacar el modulo de 10 del numero aleatorio, y si este coincide con el digito que pasemos lo inserta en el array.

  2. Daniel

    Hola podría ver el código del ejercicio 24,no lo tengo muy claro y soy novato solo quiero comprenderlo.

  3. CHARLY CAMACHO

    hola.. ayúdeme a resolver este problema..VECTORES en java
    Los gemelos del profesor Lucas (Pedro y Paco) son jugadores de fútbol. Cada vez que el profesor los
    lleva a partidos debe buscarlos entre los 11 jugadores del equipo y la única manera de identificarlos
    es por el número de la camiseta, Pedro usa el número 18 y Paco el número 19.
    Usted ha sido seleccionado para desarrollar una solución que le permita al profesor revisar los
    números de camisetas de los jugadores de cada equipo participante y saber si sus hijos estarán
    jugando. cel.3206783587…sharcamac16@gmail.com

  4. Sebastian Calabro

    Buenas como va? Les dejo mi solucion del primer ejercicio 1)

    Utilice scanner en mi caso.

    package practice;

    import java.util.Scanner;

    public class ArrayEj1 {
    private static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
    int[] array = new int[10];

    enterValues(array);
    showValues(array);

    }

    public static void enterValues(int[] arrayInput) {
    int number = 0;
    for (int i = 0; i < arrayInput.length; i++) {
    number = sc.nextInt();
    System.out.println("Introduce un numero");
    arrayInput[i] = number;
    System.out.println();
    }

    }

    public static void showValues(int[] array) {
    int value = 0;
    for (int i = 0; i < array.length; i++) {
    value = array[i];
    System.out.println();
    System.out.println("El indice " + i + " obtiene el valor: " + value);
    System.out.println();
    }
    }

    }

  5. García calle violeta noeli

    Crea un array de números de 5 posiciones, llenarlos por teclado y luego multiplicar a cada elemento por 3, finalmente mostrar el array ya actualizado.

    apoyo

  6. maria garcia

    Hola, alguien podría ayudarme con este ejercicio:

    En esta unidad implementaremos una aplicación capaz de gestionar un Gimnasio. El gimnasio sólo podrá gestionar como máximo 70 personas.

    El proyecto se llamará PROG06_Tarea.

    Al iniciar nuestra aplicación, se mostrará por pantalla un pequeño menú con las siguientes opciones:

    Nueva Persona.
    Buscar Persona.
    Modificar código taquilla.
    Listar Personas.
    Eliminar Persona.
    Salir.
    El funcionamiento de cada opción será el siguiente:

    Nueva Persona: Se solicitarán al usuario por teclado los datos de una nueva Persona y, si los datos son correctos, se almacenará en el gimnasio. En caso de error en algún dato se volverá a solicitar hasta introducir un valor correcto. Comprobaremos que no existe esa persona en el gimnasio. Si así fuera lanzaremos una excepción y volveremos a mostrar el menú.
    Para añadir una nueva Persona se deberá validar:

    o Mediante expresiones regulares que:

    El DNI del propietario es correcto y estará formado por 8 números y una letra
    El código de la taquilla es correcta. Estará formado por dos caracteres (mayúsculas o minúsculas ) y 3 números(del 0 al 9)
    Sin expresiones regulares (utilizando métodos de la clase String):
    La longitud del nombre de la persona debe ser mayor a 20 caracteres.
    Buscar Persona: Se solicitará el DNI y se buscará en el gimnasio la persona que coincida con el DNI introducido. Si existe se mostrarán su nombre, dni, y casillero por pantalla y en caso contrario el mensaje «No existe Persona con el DNI introducido».

    Modificar codigoCasillero : Se solicitará el código del casillero. Buscaremos ese código y lo cambiaremos por el valor introducido siempre que cumpla el formato. Si no existe, se mostrará un mensaje por pantalla.

    Listar Personas: Mostrará por pantalla un listado de las personas del gimnasio, mostrando nombre, DNI, edad, codigoTaquilla.
    Eliminar Persona: Se solicitará el DNI de la Persona y se buscará en el array de Gimanasio para eliminarla. Se decrementará el número de Personas que hay en el gimnasio

    Salir: la aplicación finalizará.

    Después de la ejecución de cada opción, se mostrará de nuevo el menú.

    Para la implementación TEN EN CUENTA:

    a) Haz una clase llamada Persona que siga las siguientes condiciones:

    Sus atributos son: nombre, DNI, fechaNacimiento, sexo (H hombre, M mujer), peso, altura y codigoTaquilla. No queremos que se accedan directamente a ellos. Piensa que modificador de acceso es el más adecuado, también su tipo. Si quieres añadir algún atributo puedes hacerlo.
    Por defecto, todos los atributos menos el DNI y la fechaNacimiento serán valores por defecto según su tipo (0 números, cadena vacía para String, etc.). Sexo será hombre por defecto, usa una constante para ello.
    Se implantarán varios constructores:
    · Un constructor por defecto.

    · Un constructor con el nombre, edad y sexo, el resto por defecto.

    · Un constructor con todos los atributos como parámetro.

    Los métodos que se implementaran son:
    · calcularIMC(): calculara si la persona está en su peso ideal (peso en kg/(altura^2 en m)), si esta fórmula devuelve un valor menor que 20, la función devuelve un -1, si devuelve un número entre 20 y 25 (incluidos), significa que está por debajo de su peso ideal la función devuelve un 0 y si devuelve un valor mayor que 25 significa que tiene sobrepeso, la función devuelve un 1. Te recomiendo que uses constantes para devolver estos valores.
    comprobarSexo(char sexo): comprueba que el sexo introducido es correcto. Si no es correcto, será H. No será visible al exterior.
    getAnyos(): Devuelve la edad de la Persona.
    esMayorDeEdad(): indica si es mayor de edad, devuelve un booleano.
    toString(): devuelve el DNI, nombre, edad y código de la taquilla
    Métodos getter y setter
    Los métodos de la clase Persona no mostrarán datos por pantalla..

    · Desde el programa principal no se podrá llamar directamente a esta clase.

    b) Crea una clase llamada Gimansio:

    Crea la estructura de datos necesaria para almacenar las Personas, con un tamaño máximo de 70 personas.
    Crea un atributo de clase dónde se almacene el número total de personas almacenadas. Llámalo numPersonas. Este atributo te permitirá conocer la posición de inserción de un nueva Persona o hasta qué posición debes recorrer la estructura.
    Sus métodos serán:
    Constructor o constructores.
    buscaPersona: Recibe como parámetro un DNI, buscará la Persona en el gimnasio y si la encuentra devolverá true. En caso contrario false. No debe mostrar nada por pantalla.
    devuelvePersona: Recibe como parámetro un DNI, buscará la Persona en el gimnasio y devolverá el objeto Persona o null si la Persona buscada no existe. No debe mostrar nada por pantalla.
    datosPersona: Recibe como parámetro un DNI, buscará la Persona y si la encuentra devolverá sus datos en un string.
    anadePersona: Recibe todos los datos de una Persona y lo inserta en el gimnasio. Incrementará el atributo que almacena el número de personas almacenadas. El método devuelve true si se insertó correctamente o false si no tiene cabida en el gimnasio. No debe mostrar nada por pantalla.
    listaPersonas: Muestra por pantalla los datos de todas las personas del gimnasio
    actualizaTaquilla: Recibe por parámetro un DNI y un codigoTaquilla y buscará la Persona con dicho DNI para modificarle el código de Taquilla si este es válido. El método devuelve true si se hizo con éxito y false en caso contrario. No debe mostrar nada por pantalla.
    eliminaPersona: Recibe como parámetro un DNI, buscará la Persona en el gimnasio y si la borrará del gimnasio. Decrementa el atributo que almacena el número de personas en el gimnasio.
    Utiliza los paquetes que consideres oportuno para organizar las clases.
    Desde la clase Principal no debes llamar a la clase Persona. Solo se debe utilizar la clase Gimansio.
    IMPORTANTE

  7. William Marin

    mi estimado excelente contenido, me podrias ayudar muchisimo, si puedes hacer los problemas 1-2-3-4-5 pero con Pseint

    Saludos desde Venezuela.

  8. lorena

    hola! en el segundo ejercicio , faltaria la suma de los números del array generado aleatoriamente:

    he puesto este codigo, solo mando el del último método
    :
    public static void mostrarArray(int[]lista) {

    int sumaTotal = 0;
    for(int i=0;i<lista.length;i++) {
    sumaTotal+=lista[i];
    System.out.println("el indice del numero es " + i + " y el valor es " + lista[i]);

    }
    System.out.println("suma " + sumaTotal);
    }

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