Ejercicios propuestos por tema
Arreglos estáticos
Reto 1: Promedio de calificaciones
Nivel: Básico
Tiempo estimado de resolución: 20 minutos
Participantes: Individual
Enunciado: Crea un programa en Java que permita almacenar las calificaciones de 5 estudiantes en un arreglo estático y luego calcule el promedio general.
Resultado esperado: El programa debe mostrar el promedio calculado.
Ejemplo de salida:
Ingrese las 5 calificaciones:
Calificación 1: 4.0
Calificación 2: 3.5
Calificación 3: 5.0
Calificación 4: 2.8
Calificación 5: 3.9
El promedio general es: 3.84
Pistas o ayudas:
- Usa un arreglo de tipo
double
de tamaño 5. - Recorre el arreglo con un ciclo
for
para sumar los valores. - Divide la suma entre el tamaño del arreglo para obtener el promedio.
Reto 2: Mayor y menor número
Nivel: Básico
Tiempo estimado de resolución: 25 minutos
Participantes: En parejas
Enunciado: Diseña un programa que almacene 10 números enteros en un arreglo estático y determine cuál es el mayor y cuál es el menor.
Resultado esperado: Debe imprimir el valor mayor y el menor encontrados en el arreglo.
Ejemplo de salida:
Números: [8, 3, 12, 1, 7, 9, 2, 11, 6, 4]
El número mayor es: 12
El número menor es: 1
Pistas o ayudas:
- Inicializa las variables mayor y menor con el primer elemento del arreglo.
- Usa un ciclo para comparar y actualizar estas variables.
Reto 3: Invertir el contenido de un arreglo
Nivel: Medio
Tiempo estimado de resolución: 30 minutos
Participantes: Individual
Enunciado: Crea un programa que guarde 6 cadenas de texto en un arreglo estático y muestre las cadenas en orden inverso al que fueron ingresadas.
Resultado esperado: Debe imprimir los elementos invertidos.
Ejemplo de salida:
Palabras: [Java, POO, Arreglos, Estáticos, Ejercicios, Final]
Orden invertido: [Final, Ejercicios, Estáticos, Arreglos, POO, Java]
Pistas o ayudas:
- Usa un arreglo de tipo
String
. - Crea un segundo ciclo
for
que recorra el arreglo desde el final hasta el principio.
Reto 4: Registro de productos con POO
Nivel: Medio
Tiempo estimado de resolución: 45 minutos
Participantes: En grupo (máx. 3 personas)
Enunciado: Implementa una clase Producto
con atributos nombre
, precio
y cantidad
. Crea un arreglo estático de 5 posiciones que almacene instancias de la clase y calcule el valor total del inventario (precio * cantidad de cada producto).
Resultado esperado: Debe mostrar el listado de productos y el valor total del inventario.
Ejemplo de salida:
Producto: Laptop - Precio: 2500 - Cantidad: 3
Producto: Mouse - Precio: 50 - Cantidad: 10
Producto: Teclado - Precio: 100 - Cantidad: 5
Producto: Monitor - Precio: 800 - Cantidad: 2
Producto: Impresora - Precio: 500 - Cantidad: 1
Valor total del inventario: 12400
Pistas o ayudas:
- Usa una clase con constructor y métodos
get
yset
. - Crea un ciclo para sumar el valor total.
Reto 5: Búsqueda en un arreglo de objetos
Nivel: Avanzado
Tiempo estimado de resolución: 60 minutos
Participantes: En grupo (máx. 3 personas)
Enunciado: Basándote en la clase Producto
del reto anterior, permite al usuario buscar un producto por su nombre dentro del arreglo estático. Si el producto existe, debe mostrar su precio y cantidad; de lo contrario, debe indicar que no se encontró.
Resultado esperado:
Ingrese el nombre del producto a buscar: Monitor
Resultado: Producto encontrado - Precio: 800 - Cantidad: 2
O si no existe:
Resultado: Producto no encontrado.
Pistas o ayudas:
- Usa un ciclo
for
para recorrer el arreglo de objetos. - Apóyate en el método
equalsIgnoreCase
para comparar cadenas.
Arreglos dinámicos
Reto 1: Lista dinámica de nombres
Nivel: Básico
Tiempo estimado de resolución: 20 minutos
Participantes: Individual
Enunciado: Crea un programa que permita agregar nombres a una lista dinámica (ArrayList
) hasta que el usuario escriba la palabra "fin". Al final, muestra todos los nombres ingresados.
Resultado esperado:
Ingrese nombres (escriba 'fin' para terminar):
Juan
María
Carlos
fin
Nombres ingresados: [Juan, María, Carlos]
Pistas o ayudas:
- Usa un
ArrayList<String>
en lugar de un arreglo estático. - Recorre la lista usando un
for-each
para mostrar los elementos.
Reto 2: Eliminar elementos repetidos
Nivel: Medio
Tiempo estimado de resolución: 30 minutos
Participantes: En parejas
Enunciado: Diseña un programa que almacene números enteros en un ArrayList
y elimine los duplicados, dejando solo los números únicos.
Resultado esperado:
Números originales: [4, 2, 4, 5, 2, 6]
Números sin duplicados: [4, 2, 5, 6]
Pistas o ayudas:
- Usa un
ArrayList<Integer>
. - Apóyate en un
Set
o en el métodocontains
para evitar duplicados.
Reto 3: Gestión de estudiantes con POO
Nivel: Medio
Tiempo estimado de resolución: 45 minutos
Participantes: Individual
Enunciado: Crea una clase Estudiante
con atributos nombre
y nota
. Usa un ArrayList<Estudiante>
para permitir agregar estudiantes dinámicamente. Al final, muestra el promedio de notas.
Resultado esperado:
Estudiantes:
Juan - Nota: 3.5
María - Nota: 4.2
Carlos - Nota: 2.9
Promedio: 3.53
Pistas o ayudas:
- Implementa constructores y métodos
get
yset
. - Recorre el
ArrayList
con unfor
para calcular el promedio.
Reto 4: Carrito de compras
Nivel: Avanzado
Tiempo estimado de resolución: 60 minutos
Participantes: En grupo (máx. 3 personas)
Enunciado: Crea una clase Producto
con atributos nombre
, precio
y cantidad
. Implementa un ArrayList<Producto>
que permita agregar productos al carrito. Debes incluir las opciones:
- Agregar producto
- Eliminar producto por nombre
- Mostrar el total de la compra
Resultado esperado:
Productos en el carrito:
1. Laptop - $3000 - Cantidad: 1
2. Mouse - $50 - Cantidad: 2
Total: $3100
Pistas o ayudas:
- Usa métodos para agregar, eliminar y calcular el total.
- Apóyate en el método
removeIf
para eliminar productos por nombre.
Reto 5: Sistema de reservas de vuelos
Nivel: Avanzado
Tiempo estimado de resolución: 90 minutos
Participantes: En parejas
Enunciado: Implementa una clase Reserva
con atributos codigoVuelo
, nombrePasajero
y asiento
. Crea un ArrayList<Reserva>
que permita:
- Registrar reservas.
- Buscar reservas por el código de vuelo.
- Mostrar la lista completa.
Resultado esperado:
Ingrese el código de vuelo a buscar: AV123
Reservas encontradas:
AV123 - Pedro Pérez - Asiento: 10A
AV123 - Laura Gómez - Asiento: 10B
Pistas o ayudas:
- Usa
equalsIgnoreCase
para comparar el código de vuelo. - Puedes aplicar métodos como
stream().filter()
o recorrer con unfor
.