
Volver al catálogo
2025-W — ECIN-00307
Programación Orientada a Objetos
Día 13 - Preparación 2° Prueba
🧪 Ejercicio 1: Sistema de Gestión de Biblioteca Digital Avanzada
📝 Descripción
Eres el desarrollador principal de un sistema de gestión para una biblioteca digital universitaria de última generación. Necesitas crear una aplicación compleja que utilice herencia avanzada, interfaces múltiples, patrones de diseño (Singleton, Factory, Strategy, Visitor), lectura de archivos, y modelado de dominio completo para gestionar diferentes tipos de recursos digitales distribuidos en múltiples sedes de la biblioteca.
El sistema debe permitir operaciones avanzadas como préstamos inteligentes, búsquedas especializadas, generación de reportes complejos, y gestión de usuarios con diferentes niveles de acceso. Cada sede tiene recursos especializados, y cada recurso tiene características específicas según su tipo (libros electrónicos, audiolibros, revistas académicas, tesis doctorales).
🎯 Objetivos
- Aplicar herencia compleja con clases
RecursoDigitalyUsuariocon múltiples subclases - Implementar interfaces del sistema (
SistemaBiblioteca,Prestable,EstrategiaBusqueda,VisitorReporte) - Utilizar patrones de diseño: Singleton, Factory, Strategy y Visitor
- Desarrollar operaciones CRUD avanzadas con manejo de excepciones personalizadas
- Crear sistema de reportes dinámicos y consultas especializadas
- Implementar polimorfismo avanzado y modelado de dominio robusto
- Generar diagramas UML completos del sistema
📥 Entrada
- Archivo
recursos.txtcon el siguiente formato:
LIBRO_ELECTRONICO,LIB001,Java: The Complete Reference,Herbert Schildt,2023-06-15,PROGRAMACION,DISPONIBLE,850,PDF,25MB
LIBRO_ELECTRONICO,LIB002,Clean Code,Robert Martin,2022-03-20,INGENIERIA,DISPONIBLE,464,EPUB,12MB
AUDIOLIBRO,AUD001,1984,George Orwell,1949-06-08,FICCION,DISPONIBLE,720,Simon Prebble,256kbps
AUDIOLIBRO,AUD002,Sapiens,Yuval Harari,2014-09-04,HISTORIA,PRESTADO,960,Derek Perkins,320kbps
REVISTA,REV001,Nature,Varios Autores,2024-07-01,CIENCIA,DISPONIBLE,145,MENSUAL,true
REVISTA,REV002,IEEE Computer,Varios Autores,2024-06-15,TECNOLOGIA,MANTENIMIENTO,89,MENSUAL,true
TESIS,TES001,Machine Learning en Medicina,Ana Martinez,2023-12-10,INVESTIGACION,DISPONIBLE,Universidad Nacional,Medicina,DOCTORADO,2023-12-15
TESIS,TES002,Blockchain en Finanzas,Carlos Rodriguez,2024-01-20,TECNOLOGIA,DISPONIBLE,Universidad Tecnica,Ingenieria,MAESTRIA,2024-01-25
Cada línea contiene: TIPO,ID,TITULO,AUTOR,FECHA_PUBLICACION,CATEGORIA,ESTADO,ATRIBUTO1,ATRIBUTO2,ATRIBUTO3
- Archivo
usuarios.txtcon el siguiente formato:
ESTUDIANTE,USR001,Juan Perez,juan.perez@universidad.cl,2024-01-15,PREMIUM,12345,Universidad Nacional,Ingenieria Informatica
ESTUDIANTE,USR002,Maria Lopez,maria.lopez@universidad.cl,2024-02-10,BASICO,12346,Universidad Nacional,Medicina
PROFESOR,PRF001,Dr. Roberto Silva,roberto.silva@universidad.cl,2023-05-20,PREMIUM,Ciencias Computacionales,Inteligencia Artificial,EMP001
PROFESOR,PRF002,Dra. Carmen Torres,carmen.torres@universidad.cl,2022-08-15,PREMIUM,Medicina,Cardiologia,EMP002
GENERAL,GEN001,Luis Gonzalez,luis.gonzalez@gmail.com,2024-03-01,BASICO,Ingeniero de Software,Tecnologia;IA;Programacion
GENERAL,GEN002,Sofia Mendez,sofia.mendez@hotmail.com,2024-04-05,PREMIUM,Doctora,Medicina;Investigacion;Ciencia
Cada línea contiene: TIPO_USUARIO,ID,NOMBRE,EMAIL,FECHA_REGISTRO,MEMBRESIA,ATRIBUTO1,ATRIBUTO2,ATRIBUTO3
- Archivo
prestamos.txtcon el siguiente formato:
PRES001,USR001,LIB001,2024-07-15,2024-07-29,null,ACTIVO
PRES002,PRF001,AUD001,2024-07-10,2024-07-24,2024-07-22,DEVUELTO
PRES003,USR002,TES001,2024-07-20,2024-08-03,null,ACTIVO
PRES004,GEN001,REV001,2024-07-05,2024-07-19,null,VENCIDO
Cada línea contiene: ID_PRESTAMO,ID_USUARIO,ID_RECURSO,FECHA_PRESTAMO,FECHA_DEVOLUCION_ESPERADA,FECHA_DEVOLUCION_REAL,ESTADO
- Archivo
configuracion.propertiescon el siguiente formato:
limite.prestamos.estudiante=3
limite.prestamos.profesor=5
limite.prestamos.general=2
tiempo.prestamo.default=14
notificaciones.email=true
📤 Salida esperada
- Menú interactivo avanzado con opciones:
=== SISTEMA BIBLIOTECA DIGITAL UNIVERSITARIA ===
1. 📚 Gestión de Recursos
a) Mostrar inventario completo
b) Agregar nuevo recurso
c) Buscar recursos (por estrategia)
d) Eliminar recurso
e) Cambiar estado de recurso
2. 👥 Gestión de Usuarios
a) Registrar nuevo usuario
b) Buscar usuario
c) Mostrar historial de préstamos
d) Actualizar datos de usuario
3. 🔄 Sistema de Préstamos
a) Realizar préstamo
b) Procesar devolución
c) Ver préstamos activos
d) Gestionar préstamos vencidos
4. 📊 Reportes y Estadísticas
a) Reporte de inventario (Visitor)
b) Estadísticas de uso
c) Recursos más populares
d) Análisis por categoría
5. ⚙️ Configuración del Sistema
a) Cargar datos desde archivos
b) Ver configuración
6. 🔍 Búsquedas Especializadas
a) Búsqueda por título
b) Búsqueda por autor
c) Búsqueda por categoría
d) Búsqueda avanzada
0. 🚪 Salir del Sistema
📋 Requerimientos Técnicos
Sesión 1 (90 minutos): Arquitectura y Modelado
-
Jerarquía de Herencia de Recursos:
- Clase abstracta
RecursoDigitalcon métodos abstractoscalcularTiempoPrestamo()yvalidarAcceso(Usuario usuario) - Subclases:
LibroElectronico,Audiolibro,Revista,Tesis - Cada subclase implementa métodos específicos y sobrescribe métodos abstractos
- Clase abstracta
-
Jerarquía de Herencia de Usuarios:
- Clase abstracta
Usuariocon método abstractogetLimitePrestamos() - Subclases:
Estudiante,Profesor,UsuarioGeneral - Implementación de diferentes políticas de préstamo
- Clase abstracta
-
Interfaces del Sistema:
SistemaBiblioteca: prestarRecurso(), devolverRecurso(), buscarRecursos(), generarReporte()Prestable: prestar(), devolver(), estaDisponible()
-
Patrón Singleton:
- Clase
ConfiguracionSistemapara manejo centralizado de configuración
- Clase
-
Patrón Factory:
RecursoDigitalFactorypara creación dinámica de recursos según tipo
Sesión 2 (90 minutos): Patrones Avanzados y Funcionalidades
-
Lectura de Archivos:
- Parser complejo para múltiples formatos de archivo
- Manejo robusto de excepciones personalizadas
-
Patrón Strategy:
- Interface
EstrategiaBusquedacon implementaciones:BusquedaPorTitulo,BusquedaPorAutor,BusquedaPorCategoria,BusquedaAvanzada
- Interface
-
Patrón Visitor:
- Interface
VisitorReportecon implementaciones:ReporteEstadisticas,ReporteInventario,ReporteUsuarios
- Interface
-
Excepciones Personalizadas:
RecursoNoDisponibleException,LimitePrestamosExcedidoException,UsuarioNoEncontradoException
🔧 Extras Avanzados
- Sistema de Notificaciones: Alertas para recursos próximos a vencer
- Sistema de Reservas: Funcionalidad para reservar recursos no disponibles
- Políticas de Penalización: Gestión de multas y restricciones por retrasos
🏗️ Diagrama UML Requerido
- Diagrama de clases completo mostrando:
- Jerarquías de herencia completas
- Interfaces y sus implementaciones
- Patrones de diseño aplicados
- Relaciones y cardinalidades
- Métodos principales de cada clase
📦 Entregables
- Código fuente completo con documentación JavaDoc
- Diagrama UML detallado en formato imagen
- Archivos de datos de prueba completos y realistas
- Documento de arquitectura explicando decisiones de diseño y patrones utilizados
🕓 Dificultad estimada: Muy Alta
📚 Contenidos relacionados: Herencia avanzada, polimorfismo complejo, patrones de diseño, arquitectura de software, modelado de dominio
🗂️ Ayudantía: Día 8-9 – Patrones de Diseño y Arquitectura Avanzada
⏱️ Tiempo de desarrollo: 3 horas (2 sesiones de 90 minutos)
📚 Contenidos relacionados: Herencia avanzada, polimorfismo complejo, patrones de diseño, arquitectura de software, modelado de dominio
🗂️ Ayudantía: Día 8-9 – Patrones de Diseño y Arquitectura Avanzada
⏱️ Tiempo de desarrollo: 3 horas (2 sesiones de 90 minutos)
Día 12 - GUI
🧪 Ejercicio 1: Sistema de gestión de productos
📝 Descripción
Eres el arquitecto de software encargado de desarrollar el sistema final integrador. Este sistema debe combinar todos los conceptos aprendidos: herencia con clases abstractas, GUI funcional para operaciones CRUD, persistencia en archivos, y múltiples patrones de diseño. Debes gestionar diferentes tipos de productos (Libro, Electrodoméstico, Comestible) con una interfaz completa y funcional.
🎯 Objetivos
- Integrar todos los conceptos de programación orientada a objetos.
- Desarrollar habilidades de diseño de sistemas empresariales.
- Implementar aplicaciones completas con GUI, persistencia y patrones.
📥 Entrada
- Archivo
productos.txtcon el siguiente formato:
LIBRO,El Quijote,15000,10,Miguel de Cervantes,500
ELECTRODOMESTICO,Refrigerador,800000,3,Samsung,220V
COMESTIBLE,Pan,1500,50,2024-12-31
LIBRO,Cien años de soledad,18000,5,Gabriel García Márquez,400
ELECTRODOMESTICO,Lavadora,600000,2,LG,220V
📤 Salida esperada
- Sistema completo con GUI funcional:
┌─────────────────────────────────────────────────────┐
│ Sistema de Gestión de Productos │
│ │
│ ┌─────────────────┐ ┌─────────────────────────────┐ │
│ │ Tipo: [Libro ▼] │ │ Código: [____________] │ │
│ │ │ │ Nombre: [____________] │ │
│ │ Autor: │ │ Precio: [____________] │ │
│ │ [____________] │ │ Stock: [____________] │ │
│ │ │ │ │ │
│ │ Páginas: │ │ [ Agregar ] [ Modificar ] │ │
│ │ [____________] │ │ [ Eliminar] [ Limpiar ] │ │
│ └─────────────────┘ └─────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Lista de Productos │ │
│ │ ┌─────────────────────────────────────────────┐ │ │
│ │ │ [L] El Quijote - $15,000 (Stock: 10) │ │ │
│ │ │ [E] Refrigerador - $800,000 (Stock: 3) │ │ │
│ │ │ [C] Pan - $1,500 (Stock: 50) │ │ │
│ │ └─────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ Ordenar por: [Nombre ▼] [ Aplicar ] │
│ │
│ Total productos: 5 | Valor inventario: $2,434,500 │
└─────────────────────────────────────────────────────┘
LOG DEL SISTEMA:
[INFO] Sistema iniciado correctamente
[INFO] 5 productos cargados desde archivo
[INFO] Producto agregado: Libro "El Principito"
🕓 Dificultad estimada: Muy Alta
📚 Contenidos relacionados: Integración completa, herencia, GUI, persistencia, patrones de diseño
🗂️ Ayudantía: Día 14 – Integrador Final
Día 11 - GUI
🧪 Ejercicio 1: Contador de clics
📝 Descripción
Eres el desarrollador de tu primera aplicación con interfaz gráfica. Necesitas crear una ventana simple con un botón que, al ser presionado, incremente un contador y muestre el número actual de clics. Esta aplicación te introducirá a los conceptos básicos de Swing y manejo de eventos.
🎯 Objetivos
- Aplicar conceptos básicos de Swing y GUI.
- Desarrollar habilidades de manejo de eventos.
- Implementar interfaces gráficas simples.
📥 Entrada
- Interacción del usuario haciendo clic en el botón.
📤 Salida esperada
- Ventana gráfica con:
┌─────────────────────────────┐
│ Contador de Clics │
│ │
│ Número de clics: 0 │
│ │
│ [ Hacer Clic ] │
│ │
│ [ Reiniciar ] │
└─────────────────────────────┘
🧪 Ejercicio 2: Formulario de ingreso de datos
📝 Descripción
Eres el desarrollador de un formulario de registro que necesita capturar información del usuario con validación en tiempo real. El formulario debe incluir campos para nombre, email, edad y teléfono, con validaciones específicas para cada campo que se muestren inmediatamente cuando el usuario ingresa los datos.
🎯 Objetivos
- Aplicar conceptos de formularios con Swing.
- Desarrollar habilidades de validación en tiempo real.
- Implementar interfaces más complejas con múltiples componentes.
📥 Entrada
- Datos ingresados por el usuario en los campos del formulario.
📤 Salida esperada
- Formulario gráfico con validación:
┌─────────────────────────────────────┐
│ Registro de Usuario │
│ │
│ Nombre: [________________] ✓ │
│ Email: [________________] ✗ │
│ Email inválido │
│ Edad: [________________] ✓ │
│ Teléfono:[________________] ✓ │
│ │
│ [ Registrar ] [ Limpiar ] │
│ │
│ Estado: Formulario incompleto │
└─────────────────────────────────────┘
🧪 Ejercicio 3: Gestor visual de tareas
📝 Descripción
Eres el desarrollador de una aplicación de gestión de tareas con interfaz gráfica. La aplicación debe permitir agregar nuevas tareas, marcarlas como completadas, editarlas y eliminarlas. Todas las operaciones se realizan a través de botones y la lista de tareas se actualiza dinámicamente. Este ejercicio no requiere persistencia en archivo.
🎯 Objetivos
- Aplicar conceptos avanzados de Swing con listas.
- Desarrollar habilidades de CRUD con GUI.
- Implementar interfaces dinámicas que se actualicen en tiempo real.
📥 Entrada
- Interacción del usuario con botones y campos de texto.
📤 Salida esperada
- Aplicación completa de gestión de tarea
┌─────────────────────────────────────┐
│ Gestor de Tareas │
│ │
│ Nueva tarea: [________________] │
│ [ Agregar ] │
│ │
│ ┌─────────────────────────────────┐ │
│ │ ☐ Estudiar Java │ │
│ │ ☑ Hacer ejercicios │ │
│ │ ☐ Revisar código │ │
│ └─────────────────────────────────┘ │
│ │
│ [ Editar ] [ Eliminar ] [ Completar]│
│ │
│ Total: 3 tareas (1 completada) │
└─────────────────────────────────────┘
🕓 Dificultad estimada: Alta
📚 Contenidos relacionados: Swing, JList, CRUD con GUI, eventos complejos
🗂️ Ayudantía: Día 13 – Interfaces Gráficas con Swing
Día 10 - Diseño UML de Patrones
🎯 EJERCICIOS UML - PATRONES DE DISEÑO
🧪 Ejercicio 1: Sistema de Base de Datos (Patrón Singleton)
📝 Enunciado
Una empresa de software necesita diseñar un sistema de conexión a base de datos que garantice que solo exista una única conexión activa en toda la aplicación. El sistema debe manejar la conexión, permitir ejecutar consultas y mantener un log de todas las operaciones realizadas.
🎯 Requerimientos a modelar:
Una clase que maneje la conexión única a la base de datos
Métodos para conectar, desconectar y verificar estado de conexión
Funcionalidad para ejecutar consultas SQL
Sistema de logging de operaciones
Clase cliente que use la conexión desde diferentes partes del sistema
📋 Pregunta:
Diseña el diagrama UML que implemente el patrón Singleton para este sistema de base de datos, mostrando:
La clase Singleton con sus atributos y métodos
Las relaciones con las clases cliente
La forma de garantizar una única instancia
🧪 Ejercicio 2: Tienda de Mascotas (Patrón Factory)
📝 Enunciado
Una tienda de mascotas necesita un sistema para crear diferentes tipos de mascotas (Perro, Gato, Pájaro) según la solicitud del cliente. Cada tipo de mascota tiene características específicas como sonido, comida favorita y cuidados especiales. El sistema debe poder crear mascotas sin que el vendedor conozca los detalles específicos de cada tipo.
🎯 Requerimientos a modelar:
Una clase base común para todas las mascotas
Diferentes tipos específicos: Perro, Gato, Pájaro
Una fábrica que cree mascotas según el tipo solicitado
Cada mascota debe poder hacer sonido, comer y mostrar sus cuidados
Una clase vendedor que use la fábrica para crear mascotas para los clientes
📋 Pregunta:
Diseña el diagrama UML que implemente el patrón Factory Method para esta tienda de mascotas, mostrando:
La jerarquía de clases de mascotas con comportamientos comunes
La clase fábrica con su método de creación
Las relaciones entre fábrica, mascotas y vendedor
Los atributos y métodos específicos de cada tipo de mascota
🧪 Ejercicio 3: Sistema de Descuentos en E-commerce (Patrón Strategy)
📝 Enunciado
Una tienda online necesita aplicar diferentes estrategias de descuento según el tipo de cliente y promociones activas. Los descuentos pueden ser: por volumen de compra, por tipo de cliente VIP, por cupón promocional, o descuento de temporada. El sistema debe poder cambiar la estrategia de descuento dinámicamente durante el proceso de compra.
🎯 Requerimientos a modelar:
Una interfaz común para todas las estrategias de descuento
Implementaciones concretas para cada tipo de descuento
Una clase calculadora de precios que use las estrategias
Cada estrategia debe calcular el descuento basado en el monto de compra
Una clase carrito de compras que gestione la calculadora
📋 Pregunta:
Diseña el diagrama UML que implemente el patrón Strategy para este sistema de descuentos, mostrando:
La interfaz Strategy y sus implementaciones concretas
La clase Context que usa las estrategias
Las relaciones y el flujo de cambio de estrategias
🧪 Ejercicio 4: Sistema de Exportación de Documentos (Patrón Visitor)
📝 Enunciado
Una aplicación de gestión documental maneja diferentes tipos de documentos (Texto, Imagen, Video, Audio) y necesita exportarlos a diferentes formatos (PDF, HTML, XML) sin modificar las clases de documentos existentes. Cada tipo de documento requiere un procesamiento específico para cada formato de exportación.
🎯 Requerimientos a modelar:
Una jerarquía de documentos con diferentes tipos
Una interfaz visitor para las operaciones de exportación
Implementaciones concretas para cada formato de exportación
Cada documento debe poder aceptar diferentes visitors
Una clase gestora que coordine el proceso de exportación
📋 Pregunta:
Diseña el diagrama UML que implemente el patrón Visitor para este sistema de exportación, mostrando:
La estructura de documentos con la interfaz Visitable
La jerarquía de Visitors para cada formato
Las relaciones de doble dispatch entre visitors y elementos
Día 9 - Patrones de Diseño
🎯 EJERCICIOS DE PATRONES DE DISEÑO
🧪 Ejercicio 1: Sistema de Configuración Global (Patrón Singleton)
📝 Descripción
Desarrolla un sistema de configuración para una aplicación que debe mantener una única instancia de configuración en toda la aplicación. El sistema debe permitir establecer y obtener configuraciones como idioma, tema y nivel de logging.
🎯 Objetivos
- Implementar el patrón Singleton correctamente
- Garantizar una única instancia de configuración
- Demostrar el acceso global a la configuración
📥 Entrada
Opciones de configuración por teclado: idioma, tema, nivel de logging.
📤 Salida esperada
- Un menú con las siguiente opciones:
=== SISTEMA DE CONFIGURACIÓN ===
1. Establecer idioma
2. Establecer tema
3. Establecer nivel de logging
4. Mostrar configuración actual
5. Salir
🧪 Ejercicio 2: Fábrica de Vehículos (Patrón Factory)
📝 Descripción
Crea un sistema de fabricación de vehículos que utilice el patrón Factory para crear diferentes tipos de vehículos sin exponer la lógica de creación al cliente. El sistema debe crear automóviles, motocicletas y bicicletas según el tipo solicitado.
🎯 Objetivos
- Implementar el patrón Factory Method
- Encapsular la creación de objetos
- Demostrar la creación de diferentes tipos sin conocer las clases concretas
📥 Entrada
Tipo de vehículo y características básicas.
📤 Salida esperada
- Un menú con las siguiente opciones:
=== FÁBRICA DE VEHÍCULOS ===
1. Crear automóvil
2. Crear motocicleta
3. Crear bicicleta
4. Mostrar vehículos creados
5. Salir
🧪 Ejercicio 3: Calculadora de Impuestos (Patrón Strategy)
📝 Descripción
Desarrolla un sistema de cálculo de impuestos que utilice diferentes estrategias según el tipo de contribuyente. El sistema debe calcular impuestos para personas naturales, empresas pequeñas y grandes corporaciones, cada una con su propia fórmula.
🎯 Objetivos
- Implementar el patrón Strategy
- Intercambiar algoritmos de cálculo dinámicamente
- Demostrar diferentes estrategias de cálculo
📥 Entrada
Tipo de contribuyente e ingresos anuales.
📤 Salida esperada
- Un menú con las siguiente opciones:
=== CALCULADORA DE IMPUESTOS ===
1. Calcular impuesto persona natural
2. Calcular impuesto empresa pequeña
3. Calcular impuesto gran corporación
0. Salir
🧪 Ejercicio 4: Calculadora de Formas Geométricas (Patrón Visitor)
📝 Descripción
Desarrolla un sistema simple que calcule diferentes propiedades (área, perímetro) de formas geométricas (círculo, cuadrado, triángulo) sin modificar las clases de las formas. El patrón Visitor permite agregar nuevos cálculos fácilmente.
🎯 Objetivos
- Implementar el patrón Visitor
- Separar operaciones de cálculo de las formas geométricas
- Demostrar cómo agregar nuevas operaciones sin cambiar las formas
📥 Entrada
Datos de formas geométricas y tipo de cálculo deseado.
📤 Salida esperada
- Un menú con las siguiente opciones:
=== CALCULADORA DE FORMAS ===
1. Agregar círculo
2. Agregar cuadrado
3. Agregar triángulo
4. Calcular áreas
5. Calcular perímetros
0. Salir
Día 7 - Interfaces
🧪 Ejercicio 1: Simulador de vuelo
📝 Descripción
Eres el desarrollador de un simulador de vuelo que necesita manejar diferentes tipos de objetos voladores. Utilizando la interfaz
Volador, debes implementar clases como Avión, Murciélago y Dron, donde cada uno tiene comportamientos de vuelo específicos. El sistema debe demostrar polimorfismo al tratar todos los objetos voladores de manera uniforme.🎯 Objetivos
- Aplicar conceptos de interfaces y polimorfismo.
- Desarrollar habilidades de implementación de contratos.
- Implementar comportamientos específicos por tipo de objeto.
📥 Entrada
- Archivo
voladores.txtcon el siguiente formato:
Avión,Boeing 747,200,900
Murciélago,Vampiro,0.5,50
Dron,DJI Phantom,2,120
Avión,Cessna 172,4,180
Murciélago,Frugívoro,0.3,40
Cada línea contiene: volador, nombre, atributo1, atributo2.
📤 Salida esperada
- Simulación de vuelo con comportamientos polimórficos:
=== SIMULADOR DE VUELO ===
Boeing 747 (Avión):
- Velocidad: 200 pasajeros, 900 km/h
- Volando: Despegando desde pista, ascendiendo gradualmente
- Navegación: Sistema GPS automático
Vampiro (Murciélago):
- Velocidad: 0.5 kg, 50 km/h
- Volando: Aleteo rápido, vuelo errático
- Navegación: Ecolocación ultrasónica
DJI Phantom (Dron):
- Velocidad: 2 kg, 120 km/h
- Volando: Vuelo estable con hélices
- Navegación: Control remoto y GPS
Todos los objetos voladores en formación
🧪 Ejercicio 2: Red de sensores
📝 Descripción
Desarrolla un sistema de gestión para una empresa de alquiler de vehículos. El sistema debe manejar automóviles, motocicletas y camiones usando interfaces, herencia y colecciones. Debe permitir agregar vehículos, alquilarlos, devolverlos y mostrar reportes básicos.
🎯 Objetivos
- Implementar interfaces para vehículos y sistema de gestión
- Utilizar herencia con clase abstracta y clases derivadas
- Desarrollar menú interactivo con ArrayList
- Aplicar polimorfismo en el manejo de vehículos
📥 Entrada
- Información por teclado: matrícula, marca, modelo, año, kilometraje y datos específicos por tipo de vehículo.
📤 Salida esperada
- Un menú con las siguiente opciones:
=== SISTEMA DE GESTIÓN DE VEHÍCULOS ===
1. Agregar vehículo
2. Listar vehículos disponibles
3. Alquilar vehículo
4. Devolver vehículo
5. Mostrar todos los vehículos
0. Salir
Extras
La interface para los vehiculos debe implementar:
- calcular costo de alquiler - Calcula costo según tipo y días
- esta disponible - Verifica disponibilidad
- alquilar - Marca como alquilado
- devolver - Marca como disponible
- mostrar información - Retorna datos del vehículo
La interface del sistema debe implementar:
- agregar vehiculo - Agrega vehículo a la flota
- buscar vehiculo - Busca por matrícula
- listar disponibles - Lista vehículos disponibles
- alquilar vehiculo - Procesa alquiler
- devolver Vvehiculo - Procesa devolución
🕓 Dificultad estimada: Media
📚 Contenidos relacionados: Interfaces, recopilación de datos, exportación de archivos
🗂️ Ayudantía: Día 10 – Interfaces y Sistema de Componentes
Día 6 - Herencia
🧪 Ejercicio 1: Zoológico virtual
📝 Descripción
Eres el director de un zoológico virtual y necesitas crear un sistema que maneje diferentes tipos de animales. Cada animal tiene comportamientos específicos, especialmente en cuanto a los sonidos que producen. Utilizando herencia, debes crear una clase base
Animal y subclases como Perro, Gato y Pez, donde cada uno redefine el método hacerSonido() según su especie.🎯 Objetivos
- Aplicar conceptos de herencia entre clases.
- Desarrollar habilidades de polimorfismo.
- Implementar sobrescritura de métodos.
📥 Entrada
- Archivo
animales.txtcon el siguiente formato:
Perro,Firulais,5,Labrador
Gato,Garfield,3,Persa
Pez,Nemo,1,Payaso
Perro,Rex,7,Pastor Alemán
Gato,Whiskers,2,Siamés
Cada línea contiene: tipo de animal, nombre, edad y raza.
📤 Salida esperada
- Simulación del zoológico con sonidos:
=== ZOOLÓGICO VIRTUAL ===
Firulais (Perro Labrador, 5 años): ¡Guau guau!
Garfield (Gato Persa, 3 años): ¡Miau miau!
Nemo (Pez Payaso, 1 año): *burbujeo*
Rex (Perro Pastor Alemán, 7 años): ¡Guau guau!
Whiskers (Gato Siamés, 2 años): ¡Miau miau!
Total de animales: 5
🧪 Ejercicio 2: Calculadora de figuras geométricas
📝 Descripción
Eres el desarrollador de una aplicación de geometría que necesita calcular áreas de diferentes figuras geométricas. Utilizando una clase abstracta
Figura, debes crear subclases como Círculo, Rectángulo y Triángulo, donde cada una implementa el método abstracto calcularArea() según su fórmula específica.🎯 Objetivos
- Aplicar conceptos de clases abstractas.
- Desarrollar habilidades de abstracción.
- Implementar métodos abstractos en subclases.
📥 Entrada
- Archivo
figuras.txtcon el siguiente formato:
Círculo,5.0
Rectángulo,4.0,6.0
Triángulo,3.0,4.0
Círculo,2.5
Rectángulo,8.0,3.0
Cada línea contiene: tipo de figura y parámetro (radio, baso o altura).
📤 Salida esperada
- Cálculo de áreas de diferentes figuras:
=== CALCULADORA DE FIGURAS GEOMÉTRICAS ===
Círculo (radio: 5.0): Área = 78.54 cm²
Rectángulo (4.0 x 6.0): Área = 24.0 cm²
Triángulo (base: 3.0, altura: 4.0): Área = 6.0 cm²
Círculo (radio: 2.5): Área = 19.63 cm²
Rectángulo (8.0 x 3.0): Área = 24.0 cm²
Área total calculada: 152.17 cm²
🕓 Dificultad estimada: Alta
📚 Contenidos relacionados: Herencia avanzada, polimorfismo, simulación de comportamientos
🗂️ Ayudantía: Día 9 – Herencia, Abstracción y Polimorfismo
Día 5 - Preparación 1° Prueba
🧪 Ejercicio 1: Sistema de Gestión de Supermercado
📝 Descripción
Eres el desarrollador de un sistema de gestión para una cadena de supermercados. Necesitas crear una aplicación que utilice herencia, matrices y ArrayList para gestionar el inventario de productos distribuidos en diferentes bodegas del supermercado. El sistema debe permitir operaciones como agregar productos, buscar por categorías, gestionar stock y generar reportes de inventario. Cada supermercado tiene múltiples bodegas especializadas, y cada bodega contiene diferentes tipos de productos con características específicas.
🎯 Objetivos
- Aplicar conceptos de herencia con clases Producto y sus subclases.
- Utilizar matrices para organizar bodegas y ArrayList para gestionar productos.
- Implementar polimorfismo en el manejo de diferentes tipos de productos.
- Desarrollar operaciones CRUD para la gestión de inventario.
- Crear un sistema de reportes y consultas avanzadas.
📥 Entrada
- Archivo
inventario.txtcon el siguiente formato:
BODEGA_0,ELECTRODOMESTICO,Refrigerador Samsung,599.99,15,24,A++
BODEGA_0,ELECTRODOMESTICO,Microondas LG,199.99,8,12,B+
BODEGA_1,ALIMENTO,Leche Entera,2.50,50,2025-08-15,LACTEO
BODEGA_1,ALIMENTO,Pan Integral,1.25,30,2025-08-05,PANADERIA
BODEGA_2,ROPA,Camisa Polo,29.99,25,M,ALGODON
BODEGA_2,ROPA,Jeans Azul,49.99,15,32,MEZCLILLA
Cada línea contiene: BODEGA_ID,TIPO_PRODUCTO,NOMBRE,PRECIO,STOCK,ATRIBUTO1,ATRIBUTO2
- Archivo
bodegas.txtcon el siguiente formato:
Coquimbo,250,BODEGA_2
Coquiimbo,250,BODEGA_2
Santiago,500,BODEGA_0
Santiago,500,BODEGA_0
Osorno,150,BODEGA_1
Osorno,150,BODEGA_1
Cada línea contiene: CIUDAD,STOCK_MAX,BODEGA_ID
📤 Salida esperada
- Menú interactivo con opciones:
=== SISTEMA SUPERMERCADO VIRTUAL ===
1. Mostrar inventario completo
2. Buscar productos por bodega
3. Agregar nuevo producto
4. Buscar por tipo de producto
5. Eliminar producto
6. Estadísticas generales
0. Salir
Extras
- Clase base
Productocon atributos comunes (nombre, precio, stock) - Subclases:
Electrodomestico(meses garantía, eficiencia energética),Alimento(fecha vencimiento, categoría),Ropa(talla, material) - Clase
Bodegacon lista de productos. - Clase
Supermercadocon matriz de bodegas - Implementar métodos polimórficos como
mostrarDetalles()ycalcularPrecioEspecial() - Para los precios especiales: Ropa = (precio * stock) / talla; Alimento = (precio * stock) / mes de vencimiento; Electrodomestico = (precio * stock) / (meses garantía * eficiencia energética).
🕓 Dificultad estimada: Alta
📚 Contenidos relacionados: Herencia avanzada, polimorfismo, simulación de comportamientos
🗂️ Ayudantía: Día 5 – Herencia, Abstracción y Polimorfismo
Día 4 - Herencia
🧪 Ejercicio 1: Zoológico virtual
📝 Descripción
Eres el director de un zoológico virtual y necesitas crear un sistema que maneje diferentes tipos de animales. Cada animal tiene comportamientos específicos, especialmente en cuanto a los sonidos que producen. Utilizando herencia, debes crear una clase base
Animal y subclases como Perro, Gato y Pez, donde cada uno redefine el método hacerSonido() según su especie.🎯 Objetivos
- Aplicar conceptos de herencia entre clases.
- Desarrollar habilidades de polimorfismo.
- Implementar sobrescritura de métodos.
📥 Entrada
- Archivo
animales.txtcon el siguiente formato:
Perro,Firulais,5,Labrador
Gato,Garfield,3,Persa
Pez,Nemo,1,Payaso
Perro,Rex,7,Pastor Alemán
Gato,Whiskers,2,Siamés
Cada línea contiene: tipo de animal, nombre, edad y raza.
📤 Salida esperada
- Simulación del zoológico con sonidos:
=== ZOOLÓGICO VIRTUAL ===
Firulais (Perro Labrador, 5 años): ¡Guau guau!
Garfield (Gato Persa, 3 años): ¡Miau miau!
Nemo (Pez Payaso, 1 año): *burbujeo*
Rex (Perro Pastor Alemán, 7 años): ¡Guau guau!
Whiskers (Gato Siamés, 2 años): ¡Miau miau!
Total de animales: 5
🧪 Ejercicio 2: Calculadora de figuras geométricas
📝 Descripción
Eres el desarrollador de una aplicación de geometría que necesita calcular áreas de diferentes figuras geométricas. Utilizando una clase abstracta
Figura, debes crear subclases como Círculo, Rectángulo y Triángulo, donde cada una implementa el método abstracto calcularArea() según su fórmula específica.🎯 Objetivos
- Aplicar conceptos de clases abstractas.
- Desarrollar habilidades de abstracción.
- Implementar métodos abstractos en subclases.
📥 Entrada
- Archivo
figuras.txtcon el siguiente formato:
Círculo,5.0
Rectángulo,4.0,6.0
Triángulo,3.0,4.0
Círculo,2.5
Rectángulo,8.0,3.0
Cada línea contiene: tipo de figura y parámetro (radio, baso o altura).
📤 Salida esperada
- Cálculo de áreas de diferentes figuras:
=== CALCULADORA DE FIGURAS GEOMÉTRICAS ===
Círculo (radio: 5.0): Área = 78.54 cm²
Rectángulo (4.0 x 6.0): Área = 24.0 cm²
Triángulo (base: 3.0, altura: 4.0): Área = 6.0 cm²
Círculo (radio: 2.5): Área = 19.63 cm²
Rectángulo (8.0 x 3.0): Área = 24.0 cm²
Área total calculada: 152.17 cm²
🧪 Ejercicio 3: Simulador de ecosistema
📝 Descripción
Eres un biólogo desarrollador que necesita simular un ecosistema con diferentes tipos de animales. Los animales tienen comportamientos específicos como moverse, alimentarse y reproducirse. Utilizando herencia y polimorfismo, debes crear un sistema que lea diferentes especies desde un archivo y simule sus comportamientos naturales en el ecosistema.
🎯 Objetivos
- Aplicar conceptos avanzados de herencia y polimorfismo.
- Desarrollar habilidades de simulación de comportamientos.
- Implementar sistemas complejos con múltiples tipos de objetos.
📥 Entrada
- Archivo
ecosistema.txtcon el siguiente formato:
Carnívoro,León,8,Sabana,Gacela
Herbívoro,Conejo,2,Bosque,Hierba
Omnívoro,Oso,12,Montaña,Peces y Frutas
Carnívoro,Águila,5,Cielo,Ratones
Herbívoro,Ciervo,6,Bosque,Hojas
Cada línea contiene: dieta, animal, edad, hábitat, presa.
📤 Salida esperada
- Simulación del ecosistema:
=== SIMULADOR DE ECOSISTEMA ===
León (Carnívoro, 8 años):
- Hábitat: Sabana
- Cazando: Gacela
- Comportamiento: Acecha sigilosamente a su presa
Conejo (Herbívoro, 2 años):
- Hábitat: Bosque
- Alimentándose: Hierba
- Comportamiento: Mordisquea plantas cerca de su madriguera
Oso (Omnívoro, 12 años):
- Hábitat: Montaña
- Alimentándose: Peces y Frutas
- Comportamiento: Busca alimento variado en su territorio
Simulación completada - Ecosistema estable
🕓 Dificultad estimada: Alta
📚 Contenidos relacionados: Herencia avanzada, polimorfismo, simulación de comportamientos
🗂️ Ayudantía: Día 9 – Herencia, Abstracción y Polimorfismo
Día 3 - Colecciones
🧪 Ejercicio 1: Agenda inteligente
📝 Descripción
Eres el desarrollador de una aplicación de contactos moderna. Necesitas crear un sistema que utilice
ArrayList para gestionar contactos de manera eficiente, permitiendo operaciones como agregar, buscar y eliminar contactos. Los contactos iniciales se cargan desde un archivo, y el sistema debe ser capaz de manejar operaciones dinámicas en tiempo real.🎯 Objetivos
- Aplicar conceptos de
ArrayListy sus métodos. - Desarrollar habilidades de búsqueda y manipulación de colecciones.
- Implementar operaciones CRUD básicas con listas.
📥 Entrada
- Archivo
contactos.txtcon el siguiente formato:
Juan Perez,555-1234,juan@email.com
Maria Lopez,555-5678,maria@email.com
Pedro Silva,555-9012,pedro@email.com
Ana Torres,555-3456,ana@email.com
Cada línea contiene: nombre, teléfono y email.
📤 Salida esperada
- Menú interactivo con opciones:
=== AGENDA INTELIGENTE ===
1. Mostrar todos los contactos
2. Buscar contacto por nombre
3. Agregar nuevo contacto
4. Eliminar contacto
5. Salir
Total de contactos: 4
🧪 Ejercicio 2: Gestor de tareas con prioridad
📝 Descripción
Eres el coordinador de un equipo de trabajo y necesitas gestionar tareas con diferentes niveles de prioridad. Utilizando
LinkedList, debes implementar un sistema que permita agregar tareas, reordenarlas dinámicamente según su prioridad y procesarlas en el orden adecuado para optimizar la productividad del equipo.🎯 Objetivos
- Aplicar conceptos de
LinkedListy sus ventajas. - Desarrollar habilidades de reordenamiento dinámico.
- Implementar lógica de priorización de tareas.
📥 Entrada
- Archivo
tareas.txtcon el siguiente formato:
Revisar documentos,2,Juan
Preparar presentación,1,Maria
Enviar reportes,3,Pedro
Reunión con cliente,1,Ana
Actualizar base de datos,2,Carlos
Cada línea contiene: tarea, prioridad y nombre del encargado.
📤 Salida esperada
- Mostrar tareas ordenadas por prioridad:
=== GESTOR DE TAREAS ===
Tareas por prioridad (1=Alta, 2=Media, 3=Baja):
PRIORIDAD ALTA:
- Preparar presentación (Asignado: Maria)
- Reunión con cliente (Asignado: Ana)
PRIORIDAD MEDIA:
- Revisar documentos (Asignado: Juan)
- Actualizar base de datos (Asignado: Carlos)
PRIORIDAD BAJA:
- Enviar reportes (Asignado: Pedro)
🧪 Ejercicio 3: Sistema de Gestión de Estudiantes
📝 Descripción
Eres el encargado del sistema académico de una universidad y necesitas procesar la información de los estudiantes que está almacenada en un archivo CSV. Tu tarea es crear un programa que lea los datos de los estudiantes, los organice en estructuras de datos apropiadas y genere reportes estadísticos para la administración académica.
🎯 Objetivos
- Implementar lectura y procesamiento de archivos CSV.
- Utilizar ArrayList para gestionar colecciones de datos.
- Aplicar conceptos de clases, objetos y referencias.
- Desarrollar funcionalidades de búsqueda, filtrado y generación de reportes.
📥 Entrada
- Archivo
estudiantes.csvcon el siguiente formato:
codigo,nombre,edad,carrera,promedio
EST001,María González,21,Ingeniería Informática,8.5
EST002,Juan Pérez,22,Administración,7.8
EST003,Ana López,20,Psicología,9.2
EST004,Carlos Ruiz,23,Ingeniería Informática,6.9
EST005,Laura Martín,21,Derecho,8.7
Cada línea contiene: código del estudiante, nombre completo, edad, carrera y promedio académico.
📤 Salida esperada
- Menú interactivo con opciones:
1. Mostrar todos los estudiantes
2. Buscar estudiantes por nombre (búsqueda parcial)
3. Filtrar estudiantes por carrera
4. Mostrar top 5 de mejores promedios
5. Generar resumen estadístico
--- RESUMEN DE DATOS ---
Total de estudiantes: 15
Promedio general: 8.12
Edad promedio: 21.8 años
Estudiantes por carrera:
- Ingeniería Informática: 4
- Medicina: 3
- Derecho: 2
- Psicología: 2
- Administración: 2
- Arquitectura: 2
Mejor promedio: Pedro Silva (9.5)
Menor promedio: Mateo Jiménez (6.5)
🕓 Dificultad estimada: Media
📚 Contenidos relacionados: Arrays, ArrayList, LinkedList, Clases
🗂️ Ayudantía: Día 3 – Colecciones
Día 2 - Introducción a POO
🧪 Ejercicio 1: Inventario de Productos
📝 Descripción
Trabajas en una pequeña tienda y necesitas digitalizar el inventario. Los productos están listados en un archivo de texto con su nombre, precio y stock. Debes crear un sistema que lea esta información, instancie objetos
Producto y genere un resumen del inventario con estadísticas importantes.🎯 Objetivos
- Aplicar conceptos de clases y objetos.
- Desarrollar habilidades de procesamiento de datos desde archivo.
- Implementar cálculos estadísticos básicos.
📥 Entrada
Archivo
productos.txt con el siguiente formato:Laptop,800000,5
Mouse,15000,20
Teclado,45000,10
Monitor,250000,8
Cada línea contiene: nombre del producto, precio, stock.
📤 Salida esperada
Mostrar resultados por consola.
Ejemplo de salida esperada:
RESUMEN DEL INVENTARIO:
Total de productos únicos: 4
Valor total del inventario: $4,525,000
Producto más caro: Laptop ($800,000)
Producto con mayor stock: Mouse (20 unidades)
🧪 Ejercicio 2: Agenda médica
📝 Descripción
Eres el recepcionista de una clínica médica y necesitas gestionar las citas del día. La información de las citas está almacenada en un archivo de texto, y necesitas crear un sistema que permita construir objetos
CitaMedica y buscar citas por nombre de paciente para brindar información rápida cuando los pacientes consulten.🎯 Objetivos
- Aplicar conceptos de clases y objetos.
- Desarrollar habilidades de búsqueda en vectores.
- Implementar funcionalidad de consulta por criterios.
📥 Entrada
Archivo
citas.txt con el siguiente formato:Juan Perez,Dr. Rodriguez,09:00,Consulta general
Maria Lopez,Dr. Gonzalez,10:30,Cardiología
Pedro Silva,Dr. Rodriguez,14:00,Control
Ana Torres,Dr. Martinez,16:15,Pediatría
Cada línea contiene: nombre del paciente, nombre del doctor, hora de consulta y tipo de consulta.
📤 Salida esperada
Mostrar resultados por consola.
Ejemplo de salida esperada:
Ingrese nombre del paciente: Maria Lopez
Cita encontrada:
Paciente: Maria Lopez
Médico: Dr. Gonzalez
Hora: 10:30
Especialidad: Cardiología
🧪 Ejercicio 3: Administración académica
📝 Descripción
Eres el administrador de un sistema educativo y necesitas gestionar cursos con sus respectivos estudiantes. Cada curso contiene una lista de estudiantes inscritos, y necesitas generar reportes detallados que muestren la información completa de cada curso, incluyendo estadísticas de los estudiantes inscritos.
🎯 Objetivos
- Aplicar conceptos de composición con colecciones.
- Desarrollar habilidades de manejo de listas de objetos.
- Implementar generación de reportes con estadísticas.
📥 Entrada
- Archivo
cursos.txtcon el siguiente formato:
Matemáticas I,MAT101,Prof. Rodriguez
Física I,FIS101,Prof. Gonzalez
Cada línea contiene: nombre de la asignatura, NRC de la signatura y nombre del profesor.
- Archivo
inscripciones.txtcon el siguiente formato:
MAT101,Juan Perez,18,4.5
MAT101,Maria Lopez,17,2.2
FIS101,Pedro Silva,19,5.8
FIS101,Ana Torres,18,6.9
MAT101,Carlos Ruiz,17,3.5
Cada línea contiene: NRC de la asignatura, nombre del estudiante, edad y promedio.
📤 Salida esperada
- Listar estudiantes agrupados por profesor:
CURSO: Matemáticas I (MAT101)
Profesor: Prof. Rodriguez
Estudiantes inscritos: 3
Lista de estudiantes:
- Juan Perez (18 años) - Promedio: 4.5
- Maria Lopez (17 años) - Promedio: 2.2
- Carlos Ruiz (17 años) - Promedio: 3.5
Promedio del curso: 3.4
CURSO: Física I (FIS101)
Profesor: Prof. Gonzalez
Estudiantes inscritos: 2
Lista de estudiantes:
- Pedro Silva (19 años) - Promedio: 5.8
- Ana Torres (18 años) - Promedio: 6.9
Promedio del curso: 6.4
🕓 Dificultad estimada: Media
📚 Contenidos relacionados: Clases básicas, Referencias
🗂️ Ayudantía: Día 3 – Intro POO/Referencias
Día 1
🧪 Ejercicio 1: Simulador de sensor ambiental
📝 Descripción
Ejemplo:
Eres un trabajador de la DMC (Dirección Meteorológica de Chile). El sensor de la estación va dándote temperaturas, las cuales se deben clasificar, además de anotar los registros históricos. Escriba un programa que simule un sensor ambiental, se deben ingresar temperaturas y clasificarlas como frías, templadas o calidas. Además, deberán registrar la temperatura mayor, menor y promedio.
🎯 Objetivos
- Aplicar estructuras de control como condicionales, ciclos.
- Desarrollar habilidades de creación de variables, manejo de condicionales y ciclos.
📥 Entrada
- 32
- -70
- 15
📤 Salida esperada
Mostrar resultados por consola.
Temperaturas:
- frías: 1
- templadas: 1
- calidas: 1
Registros historicos:
- Temperatura promedio: -7.67°
- Temperatura mínima: -70°
- Temperatura máxima: 32°
Extras
Para la clasificación se considerarán los siguientes parámetros.
- Menor a 5: Temperatura fría.
- Entre 5 y 25: Temperatura templada.
- Mayor a 25: Temperatura calida.
🧪 Ejercicio 2: Calculadora de Operaciones
📝 Descripción
Eres un programador encargado de desarrollar una calculadora que procese operaciones matemáticas básicas desde un archivo de texto. La calculadora debe ser capaz de leer operaciones (suma, resta, multiplicación, división) y sus operandos desde un archivo, procesarlas usando switch-case y mostrar los resultados.
Tu programa debe ser lo suficientemente robusto para manejar diferentes tipos de operaciones y validar que no haya divisiones por cero.
🎯 Objetivos
- Aplicar estructuras de control switch-case.
- Desarrollar habilidades de lectura desde archivo y procesamiento de datos.
- Implementar validación de datos (división por cero).
📥 Entrada
Archivo
operaciones.txt con el siguiente formato:+,5,3
-,10,4
*,7,2
/,15,3
/,8,0
Cada línea contiene: operador, primer número, segundo número (separados por comas).
📤 Salida esperada
Mostrar resultados por consola.
Ejemplo de salida esperada:
=== CALCULADORA DE OPERACIONES ===
Operación: 5 + 3 = 8.0
Operación: 10 - 4 = 6.0
Operación: 7 * 2 = 14.0
Operación: 15 / 3 = 5.0
Error: División por cero detectada en 8 / 0
=== RESUMEN ===
Operaciones procesadas: 5
Operaciones exitosas: 4
Errores encontrados: 1
🧪 Ejercicio 3: Análisis de Matriz de Sensores de Temperatura
📝 Descripción
Eres el encargado de monitorear una granja de servidores que cuenta con sensores de temperatura distribuidos en una matriz. Cada sensor registra la temperatura en diferentes momentos del día. Tu programa debe cargar estos datos desde un archivo y realizar análisis estadísticos para identificar patrones de temperatura por ubicación (fila) y por horario (columna).
Es crucial mantener los servidores en temperaturas óptimas para evitar fallos del sistema. Tu análisis ayudará a identificar zonas críticas y horarios de mayor riesgo.
🎯 Objetivos
- Aplicar matrices bidimensionales para representar datos de sensores.
- Desarrollar habilidades de lectura desde archivo y procesamiento de matrices.
- Implementar cálculos estadísticos (promedios, máximos, mínimos).
- Generar reportes de análisis de temperatura.
📥 Entrada
Archivo
sensores.txt con el siguiente formato:4,6
25.5,26.2,27.1,26.8,25.9,26.5
24.8,25.1,26.3,27.2,26.7,25.4
26.1,27.0,28.5,29.1,28.3,27.2
25.2,25.8,26.4,27.5,26.9,26.1
La primera línea indica filas y columnas (4 sensores x 6 mediciones).
Las siguientes líneas contienen las temperaturas separadas por comas.
📤 Salida esperada
- Mostrar análisis por consola.
- Ejemplo de salida esperada:
=== ANÁLISIS DE SENSORES DE TEMPERATURA ===
MATRIZ DE TEMPERATURAS:
Sensor 1: 25.5 26.2 27.1 26.8 25.9 26.5
Sensor 2: 24.8 25.1 26.3 27.2 26.7 25.4
Sensor 3: 26.1 27.0 28.5 29.1 28.3 27.2
Sensor 4: 25.2 25.8 26.4 27.5 26.9 26.1
=== PROMEDIOS POR SENSOR ===
Sensor 1: 26.33°C
Sensor 2: 25.92°C
Sensor 3: 27.70°C
Sensor 4: 26.32°C
=== PROMEDIOS POR HORARIO ===
Horario 1: 25.40°C
Horario 2: 26.03°C
Horario 3: 27.08°C
Horario 4: 27.65°C
Horario 5: 26.95°C
Horario 6: 26.30°C
=== ESTADÍSTICAS GENERALES ===
Temperatura promedio general: 26.57°C
Temperatura máxima: 29.1°C
Temperatura mínima: 24.8°C
🕓 Dificultad estimada: Baja
📚 Contenidos relacionados: Variables, condicionales, ciclos, vectores, matrices.
🗂️ Ayudantía: Día 1 - Nivelación.