El Profe Luis instaló un portón automático en su casa. El portón se abre solo si detecta la tarjeta de acceso Y no hay nadie bloqueando el camino. Si solo se cumple UNA de las dos condiciones, el portón no abre. Esa regla es exactamente una tabla de verdad con el operador AND. La computadora del portón evalúa dos proposiciones y decide. 🚪🤖
Lógica de Programación: Tablas de Verdad
Aprende a razonar como una computadora usando operadores AND, OR y NOT para evaluar condiciones en algoritmos.
📐 Proposiciones y Valores de Verdad
Una proposición es una afirmación que solo puede ser VERDADERA (V / 1) o FALSA (F / 0). En programación, cada condición que el algoritmo evalúa es una proposición. Son la base de la toma de decisiones.
| Proposición | Valor | Razón |
|---|---|---|
| "10 > 5" | VERDADERO | 10 es mayor que 5 ✅ |
| "Costa Rica tiene 3 océanos" | FALSO | Tiene acceso a 2 océanos ❌ |
| "temperatura >= 30" | DEPENDE | Según el valor de la variable |
| "¿Cuánto mide el puente?" | NO ES PROP. | Es pregunta, no afirmación |
| "5 == 5" | VERDADERO | Comparación verdadera ✅ |
En programación, las proposiciones son las condiciones que ponemos en los if, while y for. Cada vez que el programa llega a una condición, evalúa si es V o F para decidir qué hacer.
¿Verdadero o Falso? Evalúa cada proposición:
Los conectivos lógicos combinan proposiciones para crear condiciones más complejas:
V AND F = F
F AND F = F
V OR F = V
F OR F = F
NOT F = V
📊 Tablas de Verdad — AND y OR
Una tabla de verdad muestra todos los posibles valores de una expresión lógica según los valores de sus variables. Cada fila es un caso posible. Son la herramienta fundamental para verificar condiciones en algoritmos.
Conjunción (AND / &&): Solo da VERDADERO cuando AMBAS proposiciones son verdaderas. Es la más estricta.
| P | Q | P AND Q | Ejemplo real |
|---|---|---|---|
| V | V | ✅ V | Tarjeta válida Y camino libre → 🚪 ABRE |
| V | F | ❌ F | Tarjeta válida Y camino bloqueado → 🔒 NO ABRE |
| F | V | ❌ F | Tarjeta inválida Y camino libre → 🔒 NO ABRE |
| F | F | ❌ F | Tarjeta inválida Y camino bloqueado → 🔒 NO ABRE |
Disyunción (OR / ||): Da VERDADERO cuando AL MENOS UNA proposición es verdadera. Es más flexible que AND.
| P | Q | P OR Q | Ejemplo real |
|---|---|---|---|
| V | V | ✅ V | Llueve OR hace frío → 🧥 Me abrigo (y llueve y hace frío) |
| V | F | ✅ V | Llueve OR no hace frío → 🧥 Me abrigo (al menos llueve) |
| F | V | ✅ V | No llueve OR hace frío → 🧥 Me abrigo (al menos hace frío) |
| F | F | ❌ F | No llueve OR no hace frío → 👕 No me abrigo |
🎮 Evaluador interactivo: Activa o desactiva P y Q y observa el resultado de AND y OR:
🔧 Reto: Completa la tabla de verdad. ¿Cuántos resultados puedes adivinar?
Procedimientos y Funciones
Organiza tu código en bloques reutilizables. Aprende a declarar, invocar y pasar parámetros a tus funciones.
El Profe Luis tiene una receta para hacer arroz con leche que usa siempre. En vez de escribir todos los pasos cada vez que cocina, los escribió en una hoja y la llamó "hacerArrozConLeche(personas)". Ahora solo dice el nombre de la receta y cuántas personas son. Eso es una función: instrucciones con nombre, listas para usar cuando las necesites, con los datos que necesiten. 🍚📋
📦 Anatomía de una Función
Una función es un bloque de código con nombre que realiza una tarea específica. Se escribe una vez (declaración) y se usa muchas veces (invocación). Puede recibir datos de entrada (parámetros) y devolver un resultado (retorno).
Una función tiene 4 partes esenciales:
Los parámetros son como "huecos" que la función espera que llenes. Los argumentos son los valores reales que pones en esos huecos.
Parámetros = ingredientes que pide la receta (tamaño, sabor)
Argumentos = lo que tú eliges cuando pides (grande, hawaiana)
Las funciones con retorno (return) devuelven un valor que puedes usar en otras partes del programa. Son las más poderosas.
| Tipo | Tiene return | Cuándo usar |
|---|---|---|
| Procedimiento | ❌ No | Solo hacer acciones: mostrar, mover, encender |
| Función | ✅ Sí | Calcular y devolver un resultado para usar |
🎮 Simulador de funciones: Crea una función, ingresa argumentos y ve el resultado:
Computación Física: Soluciones Automatizadas
Conecta el código con el mundo real. Diseña sistemas que detectan, procesan y actúan de forma automática.
El Profe Luis viajó a Limón por una semana y se preocupó por sus plantas. Entonces creó un sistema de computación física: un sensor de humedad conectado a un Arduino. Si la humedad del suelo baja de 30%, entonces activa una bomba de agua por 5 segundos. El jardín se regó solo toda la semana. ¡Eso es resolver una necesidad real con tecnología! 🌱💧🤖
🏗️ Sistema de Computación Física
La computación física es la integración de software (programas) con hardware (componentes electrónicos) para crear sistemas que perciben el entorno mediante sensores y actúan sobre él mediante actuadores, respondiendo a necesidades reales de forma automática.
Todo sistema de computación física sigue el mismo ciclo:
Sistemas de riego automático en fincas de café, sensores de temperatura en hospitales, semáforos inteligentes en San José, detección de lluvia en estaciones meteorológicas del IMN. ¡La computación física está por todas partes! 🇨🇷
Los sensores son los "sentidos" del sistema. Convierten fenómenos físicos en señales eléctricas que el microcontrolador puede leer:
Los actuadores son los "músculos" del sistema. Reciben órdenes del microcontrolador y producen efectos físicos:
| Actuador | Qué hace | Aplicación |
|---|---|---|
| 💡 LED | Emite luz | Indicadores, señalización, iluminación |
| 🔊 Buzzer | Emite sonido | Alarmas, notificaciones, melodías |
| ⚙️ Motor DC | Gira continuamente | Ventiladores, bombas de agua, robots |
| 🦾 Servo | Gira a ángulos exactos | Portones, brazos robóticos, cámaras |
| 📺 Pantalla LCD | Muestra texto/datos | Displays de información, menús |
| 🔌 Relé | Controla circuitos grandes | Encender electrodomésticos desde Arduino |
🎮 Simulador: Sistema de jardín automático. Ajusta los sensores y observa cómo responde el sistema:
Prototipos de Sistemas Automatizados
Del problema al prototipo: diseña, planifica y construye soluciones reales con computación física.
La clase de 6° decidió mejorar la entrada de la escuela. Primero identificaron el problema: la puerta quedaba abierta y dejaba entrar insectos. Luego diseñaron una solución: sensor de presencia + servo para cerrar automáticamente. Hicieron un prototipo con cartón y Arduino para probar la idea antes de hacerlo en real. ¡Ganaron el primer lugar en la feria de ciencias! 🏆🚪🤖
🔩 ¿Qué es un Prototipo?
Un prototipo es un modelo preliminar y funcional de un sistema que sirve para probar, validar y mejorar una idea antes de crear la versión final. Es barato de hacer, permite detectar errores y se puede modificar fácilmente. En tecnología, los prototipos salvan tiempo y dinero.
El proceso de diseño de un prototipo sigue pasos lógicos:
Los mejores prototipos se hacen con varias mejoras. La primera versión siempre tiene errores. Fallar rápido y mejorar es la filosofía de los mejores ingenieros del mundo.
Prototipos de sistemas automatizados para resolver necesidades reales en Costa Rica 🇨🇷:
🎮 Diseñador de prototipos: Elige un problema y ve cómo se construiría el sistema:
Prototipo completo de puerta automática usando funciones y computación física:
Este prototipo usa funciones (abrirPuerta, cerrarPuerta) y una tabla de verdad OR (evaluarAcceso) — todo lo aprendido en los módulos anteriores se usa aquí. ¡Así funciona la programación real!