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

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 Inside SelectShow

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 Inside SelectShow

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 Inside SelectShow

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 Inside SelectShow




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 Inside SelectShow




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 Inside SelectShow

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 Inside SelectShow




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 Inside SelectShow

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 Inside SelectShow

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 Inside SelectShow
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 Inside SelectShow

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 Inside SelectShow

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

Spoiler Inside SelectShow

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

Spoiler Inside SelectShow

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

Spoiler Inside SelectShow

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

Spoiler Inside SelectShow

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

Spoiler Inside SelectShow

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

Spoiler Inside SelectShow

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

Spoiler Inside SelectShow

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

Spoiler Inside SelectShow

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 Inside SelectShow

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

Spoiler Inside SelectShow

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 Inside SelectShow

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 Inside SelectShow

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

Etiquetas

30 comments

  1. Yo también hice el 10 con objectos Personas, pero claro, aqui estamos repasando arrays. Saludos y gracias por estos aportes.

  2. hola chicos necesito que me ayuden a crear un programa en java que sea capas de generar un arreglo de largo solicitado por el usuario ,luego muestre los numeros pares segun el largo de los arreglos ingresados anteriormente

    les explico el codigo debe dar los numeros pares ejemplo
    si el usuario ingresa 100 por teclado debe mostrar los primeros 100 numeros pares espero me puedan ayudar con algo cuídense saludos

  3. Muchas gracias, trabaje como programador un año, lo deje 5 meses y por motivos laborales lo vuelvo a retomar y lo cierto es que me habia olvidado de muchas cosas.
    Gracias a su pagina las vuelvo a recordar y a entrenar mi habilidad con algunos conceptos básicos como los arrays.
    Saludos desde Lima- Perú

  4. Serian tan amables, de diseñar el algoritmo y pseudocigo del ejemplo 10, aun no lo entiendo muy bien , gracias

  5. Basicamente, es una matriz de 10×3, donde en sexo y trabajo van 0 o 1 y en la tercera su sueldo y calcular segun esos datos lo que te piden.

    Un saludo

  6. Como le harian para el manejo de archivos e el problema 10?

  7. ¿Te refieres si usaramos ficheros? No se a que te refieres.

    Recuerda que puedes contactar con nosotros en nuestro skype, el id es discoduroderoer

  8. ok. quiero hacer un arreglo de unas 100 preguntas. luego hare metodos para seleccionar una pregunta aleatoria de 0 a 9. otro de 10 a 19 y asi sucesivamente. la pregunta es: como hago para validar la respuesta? me dijeron que tengo que hacer otro arreglo con las respuestas correctas. pero como hare para que al seleccionar una pregunta aleatoria, me jale la misma respuesta que es de la pregunta si es d otro arreglo???

  9. Hola quisiera que me ayudaran con algo, resulta que necesito hacer un arreglo aleatorio con las siguientes condiciones:

    Una aplicación donde se ingrese x cantidad de números del 0 al 5, y por medio de un arreglo nos cuente cuantos números se ingresaron detallados, ejemplo:

    Ingreso

    2,3,4,1,5,3,2,4

    Mostrar en pantalla

    0->0

    1->1

    2->2

    3->2

    4->2

    5->1

    y no se como hacerlo, ¿me podrian dar una idea?

  10. Crea un software por consola que utilize 3 array de 10 posiciones que contengan la siguiente informacion:
    a. Notas
    b. Nombre alumno
    c. Situacion Final

    El array Notas y Nombre del alumno se deben llenar mediante teclado, en Notas[] insertaremos notas entre 1 y 7 (debemos controlar que inserte una nota valida), pudiendo ser decimal la nota en el array de números, en el array de Nombre alumno se insertaran los nombres de los alumnos.
    El sistema debe insertar en el Array situacion final el texto correspondiente a la siguiente tabla:
    a. Si la nota esta entre 1 y 4 , sera un “reprobado”
    b. Si esta entre 4 y 5 , sera un “a examen”.
    c. Si esta entre 5 y 7 sera un Aprobado.

    Finalmente, el sistema debe permitir mostrar:
    a. Listado de alumnos reprobado (10pt)
    b. Listado de alumnos con derecho a examen (10pt)
    c. Listado de alumnos con derecho a examen (10pt)
    d. Listado de alumnos ordenados según nota de Mayor a Menor (10pt)
    e. Listado de alumnos ordenados según nota de Menor a Mayor (10pt)

Deja un comentario

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