Aprende a pensar como programador. Algoritmos, variables, expresiones y estructuras de control explicadas con ejemplos reales y ejercicios interactivos.
Un algoritmo es una secuencia de pasos ordenados y finitos que resuelven un problema. Todo programa de computadora es, en esencia, un algoritmo. En el contexto del plan de estudio de programación, IPO se refiere al Ciclo de la Información y es el acrónimo de los tres pasos fundamentales que realiza cualquier programa de computadora: Input (Entrada), Process (Proceso) y Output (Salida).
Aquí te detallo qué significa cada etapa según tu plan de estudio:
Todo programa recibe información, la transforma y produce un resultado. Este es el esquema fundamental de cualquier sistema de cómputo.
// Algoritmo: Calcular área de un rectángulo // ENTRADA → PROCESO → SALIDA INICIO // ENTRADA: pedirle datos al usuario Leer(base) // ancho del rectángulo Leer(altura) // alto del rectángulo // PROCESO: calcular el área area ← base * altura // SALIDA: mostrar el resultado Mostrar("El área es: ", area) FIN
# ENTRADA base = float(input("¿Cuál es la base? ")) altura = float(input("¿Cuál es la altura? ")) # PROCESO area = base * altura # SALIDA print(f"El área del rectángulo es: {area} cm²")
INICIO // ENTRADAS Leer(tarjeta) // insertar tarjeta Leer(pin) // ingresar PIN secreto Leer(monto) // cantidad a retirar // PROCESO SI pin == pin_correcto Y saldo >= monto ENTONCES saldo ← saldo - monto DispensarBilletes(monto) // SALIDA Mostrar("Retire su dinero. Saldo: ", saldo) ExpulsarTarjeta() FIN
Las variables son cajas con nombre que guardan información. Las constantes son cajas selladas que nunca cambian su contenido.
edad, no x.| Tipo | Nombre técnico | Valores posibles | Ejemplo | Tamaño típico |
|---|---|---|---|---|
| Número entero | int | Números sin decimales | edad = 25 | 4 bytes |
| Número decimal | float | Números con punto decimal | precio = 3.99 | 8 bytes |
| Texto | string | Caracteres entre comillas | nombre = "Ana" | Variable |
| Booleano | bool | Solo True o False | activo = True | 1 byte |
| Carácter | char | Un solo carácter | inicial = 'A' | 1 byte |
# ── VARIABLES (pueden cambiar) ─────────────────── nombre = "Carlos" # string edad = 22 # int altura = 1.75 # float activo = True # bool # ── CONSTANTES (convención: MAYÚSCULAS) ────────── PI = 3.14159265 # constante matemática IVA = 0.19 # impuesto al valor agregado MAX_EDAD = 120 # límite máximo aceptable # ── OPERACIÓN DE ASIGNACIÓN ─────────────────────── edad = 23 # actualizamos la variable print(f"{nombre} tiene {edad} años") # → Carlos tiene 23 años
nombre_completo) · No usan tildes ni ñ en código profesional · Deben ser descriptivas: precioTotal es mejor que pt.
# Ficha de estudiante nombre = "Laura Gómez" # string matricula = 20231045 # int promedio = 4.2 # float becado = True # bool carrera = "Ingeniería" # string print(f"Estudiante: {nombre} | Promedio: {promedio}")
Las expresiones aritméticas combinan variables, constantes y operadores para producir un valor numérico. Son la base de todos los cálculos en programación.
() → 2º Potencias ** → 3º Multiplicación y división * / // % → 4º Suma y resta + -. Cuando hay empate, se evalúa de izquierda a derecha.
# Ejemplo: factura de compra precio_unitario = 15000 cantidad = 6 IVA = 0.19 # constante 19% subtotal = precio_unitario * cantidad impuesto = subtotal * IVA total = subtotal + impuesto print(f"Subtotal: ${subtotal:,}") # → $90,000 print(f"IVA 19%: ${impuesto:,.0f}") # → $17,100 print(f"TOTAL: ${total:,.0f}") # → $107,100 # El operador módulo: ¿es par o impar? numero = 17 print(numero % 2) # → 1 (resto ≠ 0, es impar) # Potencias: área de círculo radio = 5 PI = 3.14159 area = PI * radio ** 2 # → 78.539
# Conversor de temperatura celsius = float(input("Ingresa temperatura en Celsius: ")) fahrenheit = (celsius * 9 / 5) + 32 print(f"{celsius}°C equivale a {fahrenheit:.1f}°F") # Pruebas: # 0°C → 32.0°F ✓ # 100°C → 212.0°F ✓ # 37°C → 98.6°F ✓ (temperatura corporal)
2 + 3 * 4 - 1 ?Las expresiones lógicas producen un resultado booleano: verdadero (True) o falso (False). Son el lenguaje con el que los programas toman decisiones.
| Operador | Significado | Ejemplo | Resultado |
|---|---|---|---|
| == | Igual a | 5 == 5 | True |
| != | Diferente de | 5 != 3 | True |
| > | Mayor que | 8 > 3 | True |
| < | Menor que | 2 < 1 | False |
| >= | Mayor o igual | 5 >= 5 | True |
| <= | Menor o igual | 3 <= 2 | False |
| A | B | A AND B | A OR B | NOT A |
|---|---|---|---|---|
| V | V | V | V | F |
| V | F | F | V | F |
| F | V | F | V | V |
| F | F | F | F | V |
edad = 20 es_ciudadano = True tiene_cedula = True # AND: TODAS las condiciones deben ser verdaderas puede_votar = edad >= 18 and es_ciudadano and tiene_cedula print(puede_votar) # → True # OR: Al menos UNA condición debe ser verdadera descuento = edad < 12 or edad > 65 print(descuento) # → False (20 no es ni menor ni mayor) # NOT: invierte el booleano print(not descuento) # → True # Combinaciones con paréntesis (muy importante) acceso = (edad >= 18 and tiene_cedula) or edad == 0 print(acceso) # → True
edad y tiene_entrada.
edad = 8 tiene_entrada = False # Acceso libre (menores de 12 o mayores de 65) acceso_libre = edad < 12 or edad > 65 # Acceso normal: edad entre 12 y 65 CON entrada acceso_normal = (edad >= 12 and edad <= 65) and tiene_entrada # Puede entrar: libre O (normal CON entrada) puede_entrar = acceso_libre or acceso_normal print(f"Acceso libre: {acceso_libre}") # True (tiene 8) print(f"Puede entrar: {puede_entrar}") # True
a = True y b = False, ¿qué devuelve not a or b?Las estructuras condicionales permiten que el programa tome caminos diferentes según si una condición es verdadera o falsa. Son el corazón de la toma de decisiones.
temperatura = 38 if temperatura > 37.5: print("Tienes fiebre. Consulta un médico.") # Si temperatura ≤ 37.5, no se imprime nada
edad = 16 if edad >= 18: print("Puedes entrar al evento.") else: print("Acceso denegado, eres menor de edad.") # → Acceso denegado, eres menor de edad.
nota = 78 if nota >= 90: print("🏆 Excelente") elif nota >= 70: print("✅ Bueno") elif nota >= 50: print("⚠️ Regular") else: print("❌ Reprobado") # → ✅ Bueno (porque 78 ≥ 70)
usuario = "admin" password = "1234" if usuario == "admin": if password == "1234": print("✅ Acceso al panel de administración") else: print("❌ Contraseña incorrecta") else: print("❌ Usuario no reconocido")
categoria = input("Categoría (VIP/Frecuente/Normal/Nuevo): ").lower() precio = float(input("Precio original: $")) if categoria == "vip": descuento = 0.30 elif categoria == "frecuente": descuento = 0.15 elif categoria == "normal": descuento = 0.05 else: descuento = 0.0 precio_final = precio * (1 - descuento) print(f"Descuento: {descuento*100:.0f}%") print(f"Precio final: ${precio_final:,.2f}")
nota = 50?if nota >= 90: print("A") elif nota >= 70: print("B") elif nota >= 50: print("C") else: print("F")Aplicamos todo lo aprendido en un programa real. Este proyecto integra algoritmos, variables, aritmética, lógica y condicionales.
# ════════════════════════════════════════════════ # CALCULADORA DE NÓMINA · Proyecto Integrador # ════════════════════════════════════════════════ # ── CONSTANTES ────────────────────────────────── SALUD = 0.04 # 4% descuento salud PENSION = 0.04 # 4% descuento pensión HORA_EXTRA = 1.25 # hora extra vale 25% más # ── ENTRADA ───────────────────────────────────── nombre = input("Nombre del empleado: ") salario_base = float(input("Salario base mensual: $")) horas_extras = int(input("Horas extras trabajadas: ")) rendimiento = int(input("Calificación de rendimiento (1-5): ")) # ── PROCESO ───────────────────────────────────── # Calcular valor hora valor_hora = salario_base / 240 # 240 horas al mes pago_extras = horas_extras * valor_hora * HORA_EXTRA # Bonificación según rendimiento if rendimiento == 5: bono = salario_base * 0.20 elif rendimiento >= 4: bono = salario_base * 0.10 elif rendimiento >= 3: bono = salario_base * 0.05 else: bono = 0 # Total devengado (lo que gana) devengado = salario_base + pago_extras + bono # Descuentos obligatorios desc_salud = devengado * SALUD desc_pension = devengado * PENSION # Impuesto de renta (condicional) if devengado > 5000000: renta = devengado * 0.19 elif devengado > 2000000: renta = devengado * 0.10 else: renta = 0 total_descuentos = desc_salud + desc_pension + renta salario_neto = devengado - total_descuentos # ── SALIDA ────────────────────────────────────── print(f"\n{'═'*40}") print(f" NÓMINA DE: {nombre.upper()}") print(f"{'═'*40}") print(f" Salario base: ${salario_base:>12,.2f}") print(f" Horas extras: ${pago_extras:>12,.2f}") print(f" Bonificación: ${bono:>12,.2f}") print(f"{'─'*40}") print(f" TOTAL DEVENGADO: ${devengado:>12,.2f}") print(f"{'─'*40}") print(f" (-) Salud 4%: ${desc_salud:>12,.2f}") print(f" (-) Pensión 4%: ${desc_pension:>12,.2f}") print(f" (-) Renta: ${renta:>12,.2f}") print(f"{'─'*40}") print(f" SALARIO NETO: ${salario_neto:>12,.2f}") print(f"{'═'*40}")
# ════════════════════════════════════════════ # SISTEMA DE FACTURACIÓN - Tienda de Ropa # ════════════════════════════════════════════ # CONSTANTES IVA = 0.19 DESC_CANTIDAD = 0.15 # 15% si cantidad > 10 DESC_MONTO = 0.10 # 10% si total > 500,000 LIMITE_CANTIDAD = 10 LIMITE_MONTO = 500000 # ENTRADA producto = input("Nombre del producto: ") precio = float(input("Precio unitario: $")) cantidad = int(input("Cantidad: ")) # PROCESO subtotal = precio * cantidad # Descuento por cantidad if cantidad > LIMITE_CANTIDAD: d1 = subtotal * DESC_CANTIDAD else: d1 = 0 subtotal_d1 = subtotal - d1 # Descuento por monto if subtotal_d1 > LIMITE_MONTO: d2 = subtotal_d1 * DESC_MONTO else: d2 = 0 base_iva = subtotal_d1 - d2 iva_valor = base_iva * IVA total = base_iva + iva_valor # SALIDA print(f"\n{'═'*42}") print(f" FACTURA - {producto.upper()}") print(f"{'═'*42}") print(f" Precio unitario: ${precio:>12,.2f}") print(f" Cantidad: {cantidad:>13}") print(f" Subtotal: ${subtotal:>12,.2f}") if d1 > 0: print(f" Desc. cantidad 15%:${d1:>12,.2f}") if d2 > 0: print(f" Desc. monto 10%: ${d2:>12,.2f}") print(f" IVA 19%: ${iva_valor:>12,.2f}") print(f"{'─'*42}") print(f" TOTAL A PAGAR: ${total:>12,.2f}") print(f"{'═'*42}")