03 · Pseudocódigo¶

Los diagramas de flujo son imágenes. El pseudocódigo es texto estructurado que describe la misma lógica de forma que se lee casi como código — pero sin atarlo a ningún lenguaje real.
Por qué existe el pseudocódigo¶
Los diagramas son excelentes para ver la forma de un algoritmo. Pero se vuelven torpes cuando la lógica se alarga, y nadie quiere dibujar 200 formas para un programa mediano.
El pseudocódigo llena el hueco:
- Te deja enfocarte en lógica antes que sintaxis.
- Describe algoritmos en formato limpio y legible que un revisor escanea rápido.
- Permite a equipos discutir soluciones sin elegir aún un lenguaje.
- Atrapa errores antes de comprometerte con código real.
El pseudocódigo no es un lenguaje de programación. Ninguna computadora lo ejecuta. Su único trabajo es ser inequívoco para humanos.
Convenciones de este curso¶
Cada curso tiene su dialecto de pseudocódigo. El nuestro es simple y bilingüe. Se muestran equivalencias inglés/español — elige un idioma y mantente consistente dentro de un mismo algoritmo.
Estructura¶
- Una instrucción por línea.
- Indenta el cuerpo de un
SI,MIENTRAS,PARAoFUNCIONcon 2 o 4 espacios. - Cierra cada bloque con una línea
FIN …que coincida con la apertura. - Variables en minúsculas;
CONSTANTES_EN_MAYÚSCULAS.
Vocabulario central¶
| Español | English | Significado |
|---|---|---|
INICIO / FIN |
START / END |
Fronteras del programa |
LEER x |
READ x |
Obtener entrada del usuario, guardar en x |
ESCRIBIR x |
WRITE x |
Mostrar x |
x = expresión |
x = expression |
Asignación |
SI condición ENTONCES ... FIN SI |
IF ... END IF |
Decisión |
SI ... SINO ... FIN SI |
IF ... ELSE ... END IF |
Decisión con alternativa |
MIENTRAS condición HACER ... FIN MIENTRAS |
WHILE ... END WHILE |
Ciclo condicional |
PARA i = a HASTA b HACER ... FIN PARA |
FOR i = a TO b DO ... END FOR |
Ciclo con contador |
FUNCION nombre(params) ... RETORNAR x FIN FUNCION |
FUNCTION ... END FUNCTION |
Subalgoritmo con nombre |
Operadores¶
- Aritméticos:
+,-,*,/,mod(residuo). - Comparación:
=,!=,<,<=,>,>=. - Lógicos:
Y,O,NO(oAND,OR,NOT).
Ejemplo 1 — Suma de dos números¶
Lado a lado con el diagrama del Módulo 02.
flowchart TD
Start([Inicio]) --> In[/Leer a/]
In --> In2[/Leer b/]
In2 --> Calc[suma = a + b]
Calc --> Out[/Escribir suma/]
Out --> End([Fin])
Correspondencia:
- Píldoras
Inicio/Fin→ palabrasINICIO/FIN. - Paralelogramos →
LEER/ESCRIBIR. - Rectángulo → línea de asignación.
Ejemplo 2 — Par o impar¶
flowchart TD
Start([Inicio]) --> In[/Leer n/]
In --> D{n mod 2 = 0?}
D -- Sí --> Par[/Escribir "par"/]
D -- No --> Impar[/Escribir "impar"/]
Par --> End([Fin])
Impar --> End
Correspondencia:
- Rombo →
SI ... SINO ... FIN SI. - Rama Sí → cuerpo del
SI. - Rama No → cuerpo del
SINO.
Ejemplo 3 — Mayor de tres números¶
INICIO
LEER a, b, c
SI a >= b Y a >= c ENTONCES
ESCRIBIR a
SINO
SI b >= c ENTONCES
ESCRIBIR b
SINO
ESCRIBIR c
FIN SI
FIN SI
FIN
Nota — usamos Y para colapsar dos decisiones anidadas en una, lo cual es más claro cuando la lógica lo permite.
Ejemplo 4 — Imprimir números del 1 al N¶
Dos formas del mismo ciclo: MIENTRAS (general) y PARA (contador).
Versión MIENTRAS¶
Versión PARA (más compacta)¶
Regla práctica: usa PARA cuando conoces el número exacto de iteraciones por adelantado; usa MIENTRAS cuando el ciclo termina por una condición (entrada del usuario, dato encontrado, timeout).
Ejemplo 5 — Login con 3 intentos¶
INICIO
intentos = 0
ingreso = falso
MIENTRAS intentos < 3 Y ingreso = falso HACER
LEER contraseña
SI contraseña = "secret123" ENTONCES
ESCRIBIR "Bienvenido"
ingreso = verdadero
SINO
ESCRIBIR "Contraseña incorrecta"
intentos = intentos + 1
FIN SI
FIN MIENTRAS
SI ingreso = falso ENTONCES
ESCRIBIR "Cuenta bloqueada"
FIN SI
FIN
Dos condiciones de salida del ciclo en un solo MIENTRAS: agotar intentos O haber ingresado. Las condiciones compuestas mantienen el pseudocódigo compacto.
Ejemplo 6 — Promedio de N números (con función)¶
Cuando un algoritmo crece, extrae piezas reutilizables en funciones.
FUNCION promedio(suma, cantidad)
SI cantidad > 0 ENTONCES
RETORNAR suma / cantidad
SINO
RETORNAR 0
FIN SI
FIN FUNCION
INICIO
LEER N
suma = 0
PARA i = 1 HASTA N HACER
LEER x
suma = suma + x
FIN PARA
resultado = promedio(suma, N)
SI N > 0 ENTONCES
ESCRIBIR resultado
SINO
ESCRIBIR "N debe ser positivo"
FIN SI
FIN
¿Por qué extraer promedio?
- Describe intención (calcular un promedio), no mecanismo (una división).
- Es reutilizable en otras partes de un programa más grande.
- Deja que el programa principal se lea como una narración de alto nivel.
Correspondencia forma → palabra clave¶
| Forma | Construcción de pseudocódigo |
|---|---|
| Óvalo (Inicio/Fin) | INICIO / FIN |
| Rectángulo (proceso) | asignación o llamada a procedimiento |
| Paralelogramo (E/S) | LEER / ESCRIBIR |
| Rombo (decisión) | SI ... FIN SI o SI ... SINO ... FIN SI |
| Rombo usado para ciclos | MIENTRAS ... FIN MIENTRAS |
| Ciclo con contador | PARA i = a HASTA b HACER ... FIN PARA |
| Caja de subrutina | FUNCION ... FIN FUNCION / LLAMAR fn(args) |
Aprende bien una representación; la otra se vuelve fácil.
Errores comunes¶
- Mezclar pseudocódigo con sintaxis real.
x++es C / Java; escribex = x + 1. El pseudocódigo se mantiene agnóstico al lenguaje. - Faltar líneas
FIN. CadaSI/MIENTRAS/PARA/FUNCIONnecesita su cierre. Sin él la estructura es ambigua. - Sin indentación. La indentación permite ver el alcance de un bloque. Sin ella, la lógica anidada se convierte en un acertijo.
- Variables sin definir. Toda variable leída o probada debe haberse inicializado antes.
- Errores por uno en ciclos.
PARA i = 1 HASTA Ncorre N veces (inclusive).PARA i = 0 HASTA Ncorre N+1 veces. Elige y sé consistente. - Condiciones vagas.
SI dato es malo— ¿qué es "malo"?SI x < 0 O x > 100es inequívoco. - Detalles de implementación filtrándose. "Asignar un
HashMap<String, Integer>" pertenece al código real, no al pseudocódigo. Di "un mapeo de nombre a conteo".
Problemas de práctica¶
Escribe pseudocódigo para cada uno. Luego (bonus) dibuja el diagrama correspondiente.
- Leer un número; imprimir si es positivo, negativo o cero.
- Convertir Fahrenheit a Celsius.
- Leer 10 números e imprimir el mayor.
- Leer números hasta que se ingrese -1. Imprimir la suma y la cantidad.
- Verificar si una palabra es palíndromo (se lee igual al derecho y al revés).
- Contar vocales en una oración.
- Cálculo de impuestos: dado un ingreso, aplicar 10% hasta 10,000; 15% entre 10,001 y 30,000; 25% por encima de 30,000.
- Juego de práctica de multiplicación: hacer 5 preguntas aleatorias, contar correctas, mostrar puntaje.
- Fibonacci: imprimir los primeros N números de Fibonacci.
- Búsqueda lineal: encontrar si un valor aparece en una lista de N números.
Idea de cierre¶
El pseudocódigo es la última parada antes del código real. Para cuando lo escribes, el problema ya debe estar entendido (Módulo 01), la forma de la solución dibujada (Módulo 02) y la lógica apretada. Traducir buen pseudocódigo a un lenguaje es lo fácil; llegar a buen pseudocódigo es donde está el trabajo real.
Siguiente: Módulo 04 — Fundamentos de programación — qué es programar y qué hace la computadora por debajo.