Ing. Bernardo Prado · DSM3 · UTH 2026-2
Apellido_Paterno_Apellido_Materno_Grupo_U1_OP2, ejemplo: Hernandez_Gomez_DSM3_1_U1_OP2
.py).[Número]_Apellido_Paterno_Apellido_Materno_TemadelProblema_ExU1op2.py
01_PradoDiaz_Semaforo_ExU1op2.py
02_PradoDiaz_RendimientoEscolar_ExU1op2.py (continuando la secuencia consecutiva hasta el sexto archivo).
Siete ejercicios de aplicación directa: lógica condicional con if / elif / else y atributos bool. Cada uno incluye escenario, diagramas y salida esperada.
Una intersección inteligente necesita modelar un Semaforo con estado actual, ubicación y condición de encendido. El objeto debe usar un atributo booleano para saber si está activo, cambiar entre colores con if/elif/else y determinar si un conductor puede avanzar.
ubicacion, inicializa estado en "ROJO" y crea el booleano activo = True para representar que el sistema está funcionando desde el inicio.True solo cuando el semáforo está en verde y sigue activo. Es una condición booleana compuesta ideal para practicar and.if/elif/else para cambiar el ciclo: ROJO → VERDE, VERDE → AMARILLO y cualquier otro caso vuelve a ROJO.self.activo = False y fuerza el estado a ROJO para que el comportamiento sea seguro cuando ya no está funcionando.✓ Puede pasar o ✗ Detenerse según el resultado de puede_pasar().Semáforo [Av. Principal] → ROJO | ✗ Detenerse Semáforo [Av. Principal] → VERDE | ✓ Puede pasar Semáforo [Av. Principal] → AMARILLO | ✗ Detenerse Semáforo [Av. Principal] → ROJO | ✗ Detenerse Semáforo [Av. Principal] → ROJO | ✗ Detenerse
Un sistema académico debe representar estudiantes con su nota y asistencia para decidir si aprueban. La clase Estudiante usará atributos de clase para las políticas mínimas y combinará condiciones booleanas con estructuras if/elif/else para construir un reporte claro.
nombre, nota y asistencia como datos propios de cada alumno para poder evaluarlo después.NOTA_MINIMA y ASISTENCIA_MINIMA representan reglas globales del sistema. Se consultan desde todos los objetos sin repetir valores mágicos.True solo si la nota alcanza el mínimo y la asistencia también cumple el porcentaje exigido.if/elif/else desde Excelente hasta Reprobado según el rango numérico obtenido.✓ Aprobado o ✗ Reprobado junto con nota, asistencia y calificación textual.Ana López | Nota: 92 (Excelente) | Asistencia: 95% | ✓ Aprobado Carlos Reyes | Nota: 75 (Bien) | Asistencia: 80% | ✓ Aprobado Sofía Martínez | Nota: 55 (Reprobado) | Asistencia: 90% | ✗ Reprobado Luis Torres | Nota: 70 (Bien) | Asistencia: 65% | ✗ Reprobado
Una tienda necesita decidir descuentos según categoría y precio del producto. La clase Producto debe calcular el porcentaje con condicionales, activar un booleano cuando aplique descuento y mostrar un ticket final con precio rebajado.
nombre, precio y categoria del artículo, además de crear el booleano tiene_descuento = False como estado inicial.if/elif/else para decidir el porcentaje según la categoría. En electrónicos también compara el precio para distinguir entre 10% y 15%.tiene_descuento a True si el porcentaje calculado es mayor que cero. Así el objeto conserva el estado de si el descuento fue activado.round(..., 2); en caso contrario, retorna el precio original sin modificar.-15% o Sin descuento, y luego arma la línea final del ticket.Laptop Gamer [Electronicos] | Precio: L8500 | -15% → L7225.0 Camisa Oxford [Ropa] | Precio: L350 | -20% → L280.0 Arroz 5 kg [Alimentos] | Precio: L90 | -5% → L85.5 Libro Python [Libros] | Precio: L250 | Sin descuento → L250
Una planta industrial quiere monitorear la temperatura en distintas áreas con un objeto Sensor. La clase debe clasificar el estado térmico con if/elif/else, activar una alerta booleana si hay valores extremos y mostrar un estado entendible para el técnico.
ubicacion, permite una temperatura inicial opcional y crea el booleano en_alerta = False para manejar eventos críticos.if/elif/else para traducir el valor numérico a estados como Congelamiento, Fría, Normal, Caliente o Crítica.40 o menor a 0. En esos casos activa la alerta; si no, la apaga.🚨 ALERTA o ✓ OK y complementa la salida con la clasificación térmica del sensor.Sensor [Bodega Norte] | -5.0°C | Congelamiento | 🚨 ALERTA Sensor [Sala Servidores] | 22.0°C | Normal | ✓ OK Sensor [Horno Industrial] | 45.0°C | Crítica | 🚨 ALERTA --- Actualizando sala servidores --- Sensor [Sala Servidores] | 42.0°C | Crítica | 🚨 ALERTA
Un centro recreativo necesita verificar si un usuario puede ingresar según su edad, membresía y estado de cuenta. La clase Usuario debe usar varios if consecutivos, atributos booleanos y mensajes claros para justificar cada denegación.
nombre, edad y el valor inicial de membresia. También crea activo = True para representar que la cuenta no está suspendida al inicio.if seguidos para bloquear el acceso si la cuenta está suspendida, si el usuario es menor de edad o si no posee membresía activa.cuenta suspendida, menor de edad o sin membresía.✓ Acceso permitido o ✗ Denegado (...) con el motivo exacto según el resultado de las validaciones.María Pérez (edad: 25) | ✓ Acceso permitido Juan Gómez (edad: 16) | ✗ Denegado (menor de edad) Pedro Sánchez (edad: 30) | ✗ Denegado (sin membresía) Laura Díaz (edad: 28) | ✗ Denegado (cuenta suspendida) --- Pedro renueva membresía --- Pedro Sánchez (edad: 30) | ✓ Acceso permitido
Un estudiante de geometría necesita validar si tres lados forman un triángulo y luego clasificarlo por lados y por ángulos. La clase Triangulo combinará lógica booleana, desigualdad triangular y comparaciones cuadráticas con if/elif/else.
a, b y c como atributos del objeto para que luego sean evaluados en distintas reglas geométricas.if/elif/else para distinguir entre Equilátero, Isósceles y Escaleno.Rectángulo, Obtusángulo o Acutángulo.Triángulo (5, 5, 5) | ✓ Válido | Equilátero | Acutángulo Triángulo (3, 4, 5) | ✓ Válido | Escaleno | Rectángulo Triángulo (7, 5, 4) | ✓ Válido | Escaleno | Obtusángulo Triángulo (1, 1, 10) | ✗ No es triángulo | Inválido | Inválido