Recopilación de todos los ejercicios y prácticas que fui haciendo en la asignatura de Fundamentos de Programación durante el primer cuatrimestre de 1º de carrera en la Universidad Europea de Madrid (UEM).
Es, básicamente, mi cuaderno de clase en formato código: desde el primer System.out.println hasta la lectura de ficheros y la programación orientada a objetos. Los ejercicios están numerados (ej1 → ej26) siguiendo el orden en que se fueron viendo en clase, así que el repo también sirve como un pequeño mapa de cómo va avanzando el temario.
👩🏫 Asignatura impartida por Ana Corrales.
- Lenguaje: Java
- Entrada/Salida: consola (
Scanner) y ficheros de texto (File+Scanner) - IDE: IntelliJ IDEA (con algún resto de Eclipse por el camino)
Todo el código vive dentro de src/, organizado en paquetes por tema:
src/
├── Introducción/ → Sintaxis básica, variables, condicionales y validaciones
├── Bucles/ → for, while, do-while y números aleatorios
├── Funciones/ → Métodos, parámetros y valores de retorno
├── Arrays/ → Vectores y matrices bidimensionales
├── Objetos/ → Primer contacto con la POO (clases y constructores)
├── Ficheros/ → Lectura de ficheros de texto y manejo de excepciones
│ └── data/ → Ficheros de datos (palabras.txt, reciclaje.txt)
├── RepasoGlobal/ → Ejercicios que mezclan varios conceptos
│ └── data/ → Datos de apoyo (coches.txt)
│
├── clubLectura.java → Proyecto: club de lectura leyendo dos ficheros
├── prueba16diciembre.java → Proyecto de repaso (arrays paralelos + funciones)
├── books.txt / reviews.txt → Datos para el club de lectura
| Carpeta | Qué se practica |
|---|---|
| Introducción | Tipos de datos y variables, lectura por teclado con Scanner, operadores, conversiones (ºC↔ºF, minutos↔horas), condicionales if/else, switch, y validaciones (fecha válida, mes/día, año bisiesto, triángulos), calculadora, IMC, cálculo de áreas… |
| Bucles | Bucles for, while y do-while, contadores y acumuladores, uso de Random (ej. el ascensor y los zombis de Halloween 🧟) y un ejercicio tipo examen parcial de control horario. |
| Funciones | Creación de métodos static, paso de parámetros, valores de retorno y reutilización de código (suma, potencia, etc.). |
| Arrays | Vectores unidimensionales (medias de notas) y matrices bidimensionales (pedir e imprimir por consola). |
| Objetos | Primeros pasos en POO: definir una clase con atributos, constructor por defecto y parametrizado, métodos, y arrays de objetos. |
| Ficheros | Lectura de ficheros de texto con File + Scanner, control de errores con try/catch (FileNotFoundException) y parseo de líneas con split. |
| RepasoGlobal | Ejercicios integradores que combinan matrices, ficheros y funciones (matriz seudomágica, gestión de coches…). |
El Trabajo de Fin de Asignatura fue un Pasapalabra hecho en Java (por consola), que reúne casi todo lo aprendido durante el cuatrimestre en un único programa: ficheros, matrices, funciones, validaciones, bucles anidados e incluso un algoritmo de ordenación.
🔗 Repositorio: Adrian-Duque/TFA-PasaPalabra
Algunas cosas que hace el juego:
- Menú interactivo para jugar, ver estadísticas o salir.
- Registro de jugador con validación de datos (edad positiva y formato de correo con
@y.). - Cuatro niveles de dificultad (Infantil, Fácil, Medio y Avanzado), cada uno leído de su propio fichero de definiciones.
- Roscos aleatorios: en cada partida se elige una definición distinta por letra, así que no hay dos partidas iguales.
- Rosco a color en la terminal usando códigos ANSI (verde = acertada, rojo = fallada, amarillo = en juego).
- Mecánica de "pasapalabra" con vueltas adicionales para las letras pendientes.
- Normalización de respuestas (quita tildes y mayúsculas) para que no fallen por acentos o formato.
- Guardado de resultados en fichero y ranking Top 10 ordenado con el algoritmo de la burbuja.
👥 Proyecto realizado en equipo por Adrián Duque, Carlota Parra y Camila Michelle Páucar. El propio repositorio incluye una documentación muy detallada explicando función por función.
Cada archivo .java tiene su propio método main, así que se ejecutan de forma independiente. La forma más cómoda es abrir la carpeta en IntelliJ IDEA (o el IDE que prefieras) y darle a Run sobre la clase que quieras probar.
Desde terminal, situándote en src/:
# Compilar (respetando el paquete)
javac Bucles/bucles.java
# Ejecutar usando el nombre del paquete
java Bucles.bucles
⚠️ Ojo con los ficheros: los ejercicios deFicheros,RepasoGlobaly los proyectos de la raíz leen los.txtusando rutas relativas (por ejemplosrc/Ficheros/data/palabras.txt). Para que las encuentre, ejecútalos desde la raíz del repositorio, no desde dentro de las subcarpetas.
Este es código de primero de carrera y primer cuatrimestre: hay comentarios de aprendizaje, alguna solución mejorable y bromas ocultas por ahí. Lo mantengo tal cual como recuerdo de por dónde empecé y de cuánto se avanza en un solo cuatrimestre. 🚀
- Autor: Adrián Duque
- Profesora: Ana Corrales — Universidad Europea de Madrid