Menu
Coddy logo textTech

Ejemplos de pseudocódigo

15 ejemplos resueltos en pseudocódigo de Cambridge IGCSE y A-Level, desde un primer OUTPUT hasta el ordenamiento de burbuja. Cada uno muestra su salida, y puedes ejecutarlo en el editor de abajo.

Cómo leer estos ejemplos

El pseudocódigo describe los pasos de un programa en un inglés estructurado, sin las reglas estrictas de un lenguaje de programación real. Todos los ejemplos usan el estilo de Cambridge que piden los exámenes IGCSE y A-Level: DECLARE para las variables, ← para asignar, OUTPUT para mostrar, y bloques que se cierran con ENDIF, NEXT o ENDWHILE.

Cada ejemplo plantea un problema, da el pseudocódigo, muestra la salida que produce y explica cómo funciona. Pulsa Ejecútalo en el editor para cargar cualquier ejemplo en el editor de la parte superior de la página, donde puedes recorrerlo línea por línea y ver cómo cambian las variables. ¿Es tu primera vez con esta sintaxis? El editor de pseudocódigo tiene una biblioteca con todas las construcciones, lista para hacer clic.

1. Hello, World

Muestra un mensaje en pantalla.

Pseudocódigo
OUTPUT "Hello, World!"
Salida
Hello, World!

OUTPUT muestra lo que va detrás, y el texto va entre comillas dobles. Esta única línea es un programa completo: el pseudocódigo no necesita función principal ni importaciones.

2. Suma dos números

Guarda dos números enteros, súmalos y muestra el total.

Pseudocódigo
DECLARE a : INTEGER
DECLARE b : INTEGER
DECLARE total : INTEGER
a ← 12
b ← 30
total ← a + b
OUTPUT "The total is ", total
Salida
The total is 42

Cada variable se declara con un nombre y un tipo antes de usarla. La flecha ← guarda un valor, así que total ← a + b se lee "total pasa a valer a más b". Una coma en OUTPUT une el texto y el valor en la misma línea.

3. Par o impar

Decide si un número es par o impar.

Pseudocódigo
DECLARE n : INTEGER
n ← 17
IF n MOD 2 = 0 THEN
    OUTPUT n, " is even"
ELSE
    OUTPUT n, " is odd"
ENDIF
Salida
17 is odd

MOD da el resto de una división. Un número par no deja resto al dividirlo entre 2, así que la prueba es n MOD 2 = 0. IF elige una de dos ramas y ENDIF cierra el bloque. En pseudocódigo, un solo = compara dos valores; nunca asigna.

4. Pon nota a un examen

Convierte una puntuación sobre 100 en una nota: A desde 80, B de 60 a 79 y C por debajo de 60.

Pseudocódigo
DECLARE score : INTEGER
DECLARE grade : CHAR
score ← 74
IF score >= 80 THEN
    grade ← 'A'
ELSE
    IF score >= 60 THEN
        grade ← 'B'
    ELSE
        grade ← 'C'
    ENDIF
ENDIF
OUTPUT "Score ", score, " gets grade ", grade
Salida
Score 74 gets grade B

Las comprobaciones van del límite más alto hacia abajo, así que una puntuación de 74 no pasa la primera prueba y sí la segunda. Poner un IF dentro del ELSE de otro es la forma en que el pseudocódigo de Cambridge escribe una cadena de else-if. Un CHAR guarda un solo carácter entre comillas simples.

5. Suma los números del 1 al 10

Suma todos los números enteros del 1 al 10.

Pseudocódigo
DECLARE total : INTEGER
DECLARE i : INTEGER
total ← 0
FOR i ← 1 TO 10
    total ← total + i
NEXT i
OUTPUT "Sum of 1 to 10 is ", total
Salida
Sum of 1 to 10 is 55

Un bucle FOR se repite un número fijo de veces: i toma los valores 1, 2, 3 y así hasta 10, y NEXT i marca el final del cuerpo del bucle. El total acumulado empieza en 0 y crece en cada vuelta. El resultado, 55, coincide con la fórmula n(n + 1) / 2.

6. Muestra una tabla de multiplicar

Muestra las cinco primeras líneas de la tabla del 7.

Pseudocódigo
DECLARE i : INTEGER
FOR i ← 1 TO 5
    OUTPUT "7 x ", i, " = ", 7 * i
NEXT i
Salida
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35

El contador del bucle i se usa dentro del cálculo, así que cada vuelta muestra una línea distinta. OUTPUT puede unir varios textos y varios valores con comas.

7. Cuenta atrás con un bucle WHILE

Cuenta hacia atrás del 5 al 1 y luego muestra un mensaje final.

Pseudocódigo
DECLARE count : INTEGER
count ← 5
WHILE count > 0 DO
    OUTPUT count
    count ← count - 1
ENDWHILE
OUTPUT "Liftoff!"
Salida
5
4
3
2
1
Liftoff!

Un bucle WHILE comprueba su condición antes de cada vuelta y se detiene en cuanto la condición es falsa. Aquí la condición es count > 0, y el cuerpo resta uno a count cada vez. Si quitas la línea que lo resta, el bucle no termina nunca. Usa WHILE cuando no sabes de antemano cuántas vueltas necesitas.

8. Encuentra el número mayor de un arreglo

Encuentra el valor más grande de una lista de seis números.

Pseudocódigo
DECLARE nums : ARRAY[1:6] OF INTEGER
DECLARE i : INTEGER
DECLARE largest : INTEGER
nums[1] ← 14
nums[2] ← 3
nums[3] ← 27
nums[4] ← 9
nums[5] ← 21
nums[6] ← 6
largest ← nums[1]
FOR i ← 2 TO 6
    IF nums[i] > largest THEN
        largest ← nums[i]
    ENDIF
NEXT i
OUTPUT "The largest number is ", largest
Salida
The largest number is 27

ARRAY[1:6] declara seis posiciones numeradas del 1 al 6, porque en Cambridge los arreglos suelen empezar en 1. El programa supone que el primer elemento es el mayor, compara con él cada uno de los demás y se queda con el que sea más grande. Tras recorrer el arreglo una vez, largest guarda la respuesta.

9. Calcula una media

Calcula la media de cuatro notas de examen.

Pseudocódigo
DECLARE marks : ARRAY[1:4] OF INTEGER
DECLARE i : INTEGER
DECLARE total : INTEGER
marks[1] ← 70
marks[2] ← 85
marks[3] ← 64
marks[4] ← 91
total ← 0
FOR i ← 1 TO 4
    total ← total + marks[i]
NEXT i
OUTPUT "Average mark: ", total / 4
Salida
Average mark: 77.5

El bucle suma cada elemento del arreglo a total, y luego el programa divide entre el número de notas. El operador / da un resultado decimal, y por eso la salida es 77.5. Usa DIV cuando quieras una división entera.

11. Ordenamiento de burbuja

Ordena cinco números de menor a mayor.

Pseudocódigo
DECLARE nums : ARRAY[1:5] OF INTEGER
DECLARE i : INTEGER
DECLARE j : INTEGER
DECLARE temp : INTEGER
nums[1] ← 5
nums[2] ← 1
nums[3] ← 4
nums[4] ← 2
nums[5] ← 8
FOR i ← 1 TO 4
    FOR j ← 1 TO 5 - i
        IF nums[j] > nums[j + 1] THEN
            temp ← nums[j]
            nums[j] ← nums[j + 1]
            nums[j + 1] ← temp
        ENDIF
    NEXT j
NEXT i
FOR i ← 1 TO 5
    OUTPUT nums[i]
NEXT i
Salida
1
2
4
5
8

El ordenamiento de burbuja compara cada par de vecinos y los intercambia cuando están en el orden equivocado. Tras cada vuelta del bucle exterior, el mayor valor que quedaba ha llegado al final, así que el bucle interior puede parar un elemento antes cada vez. El intercambio necesita una tercera variable, temp, que guarda un valor mientras se copia el otro.

Mira este algoritmo animado

12. Factorial con una función

Escribe una función que devuelva el factorial de n (n!) y úsala para calcular 5!.

Pseudocódigo
FUNCTION Factorial(n : INTEGER) RETURNS INTEGER
    DECLARE result : INTEGER
    DECLARE i : INTEGER
    result ← 1
    FOR i ← 2 TO n
        result ← result * i
    NEXT i
    RETURN result
ENDFUNCTION

OUTPUT "5! = ", Factorial(5)
Salida
5! = 120

Una FUNCTION recibe parámetros, hace su trabajo y devuelve un valor con RETURN; su cabecera indica el tipo que devuelve. Las variables declaradas dentro solo existen mientras se ejecuta. 5! es 5 × 4 × 3 × 2 × 1, que da 120.

13. Cuenta las vocales de una palabra

Cuenta cuántas vocales tiene la palabra PSEUDOCODE.

Pseudocódigo
DECLARE word : STRING
DECLARE letter : CHAR
DECLARE vowels : INTEGER
DECLARE i : INTEGER
word ← "PSEUDOCODE"
vowels ← 0
FOR i ← 1 TO LENGTH(word)
    letter ← SUBSTRING(word, i, 1)
    IF letter = 'A' OR letter = 'E' OR letter = 'I' OR letter = 'O' OR letter = 'U' THEN
        vowels ← vowels + 1
    ENDIF
NEXT i
OUTPUT word, " has ", vowels, " vowels"
Salida
PSEUDOCODE has 5 vowels

LENGTH da el número de caracteres de una cadena, y SUBSTRING(word, i, 1) toma un carácter a partir de la posición i. El bucle recorre cada carácter y suma uno al contador cada vez que es A, E, I, O o U.

14. FizzBuzz

Muestra los números del 1 al 15, pero escribe Fizz para los múltiplos de 3, Buzz para los múltiplos de 5 y FizzBuzz para los múltiplos de ambos.

Pseudocódigo
DECLARE i : INTEGER
FOR i ← 1 TO 15
    IF i MOD 15 = 0 THEN
        OUTPUT "FizzBuzz"
    ELSE
        IF i MOD 3 = 0 THEN
            OUTPUT "Fizz"
        ELSE
            IF i MOD 5 = 0 THEN
                OUTPUT "Buzz"
            ELSE
                OUTPUT i
            ENDIF
        ENDIF
    ENDIF
NEXT i
Salida
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz

El orden de las comprobaciones importa. 15 es múltiplo de 3 y de 5, así que la prueba del 15 tiene que ir primero; si no, el programa escribiría Fizz y nunca llegaría a FizzBuzz. Es un calentamiento clásico en entrevistas porque pone a prueba justo este tipo de razonamiento.

15. Intentos de contraseña con REPEAT UNTIL

Prueba hasta tres contraseñas por turno y da acceso si una de ellas es correcta.

Pseudocódigo
DECLARE attempts : ARRAY[1:3] OF STRING
DECLARE tries : INTEGER
DECLARE guess : STRING
attempts[1] ← "hunter1"
attempts[2] ← "letmein"
attempts[3] ← "open sesame"
tries ← 0
REPEAT
    tries ← tries + 1
    guess ← attempts[tries]
    OUTPUT "Try ", tries, ": ", guess
UNTIL guess = "open sesame" OR tries = 3
IF guess = "open sesame" THEN
    OUTPUT "Access granted"
ELSE
    OUTPUT "Locked out"
ENDIF
Salida
Try 1: hunter1
Try 2: letmein
Try 3: open sesame
Access granted

Un bucle REPEAT ... UNTIL comprueba su condición al final, así que el cuerpo se ejecuta siempre al menos una vez. Se detiene cuando la contraseña coincide o tras el tercer intento. Las contraseñas probadas salen de un arreglo para que el ejemplo funcione sin teclear nada; en una respuesta de examen normalmente leerías cada una con INPUT.

Preguntas frecuentes sobre los ejemplos de pseudocódigo

¿Cuál es un ejemplo de pseudocódigo?

Uno corto decide si se aprueba un examen: IF score >= 50 THEN OUTPUT "Pass" ELSE OUTPUT "Fail" ENDIF. Se lee casi como inglés pero sigue reglas fijas, así que se puede pasar a Python, Java o cualquier otro lenguaje línea por línea. Los 15 programas de esta página van desde una sola línea hasta la búsqueda y la ordenación.

¿Cómo se escribe pseudocódigo?

Decide qué debe hacer el programa y escribe los pasos en orden con un conjunto pequeño de palabras clave: DECLARE para las variables, ← para asignar, IF para las decisiones, FOR o WHILE para repetir y OUTPUT para los resultados. Sangra el cuerpo de cada bloque, ciérralo con su palabra de cierre y pon una sola acción por línea.

¿El pseudocódigo es igual en todos los exámenes?

No. Cambridge (IGCSE y A-Level) usa DECLARE y la flecha ←, AQA usa ← sin declaraciones, el Exam Reference Language de OCR se parece a Python y Edexcel escribe SET ... TO. Estos ejemplos usan Cambridge; el editor de pseudocódigo cambia entre los cuatro estilos.

¿Se puede ejecutar pseudocódigo?

Sí, en esta página. El pseudocódigo no es un lenguaje de programación real, así que no tiene compilador oficial, pero este editor ejecuta pseudocódigo de Cambridge en tu navegador, muestra la salida y lo recorre línea por línea. Pulsa Ejecútalo en el editor debajo de cualquier ejemplo.

¿Qué diferencia hay entre pseudocódigo y diagrama de flujo?

Los dos describen un algoritmo antes de programarlo. Un diagrama de flujo dibuja los pasos como cajas y flechas, lo que va bien para procesos cortos con pocas decisiones. El pseudocódigo los escribe como texto estructurado, que aguanta programas más largos y se convierte en código real de forma más directa.

¿Hay que declarar las variables en pseudocódigo?

En el pseudocódigo de Cambridge, sí: los criterios de corrección esperan DECLARE name : TYPE antes de usar una variable. Otros estilos, como el de AQA, no usan declaraciones. Declarar una variable también le dice al lector qué tipo de valor guarda.

Ilustración de los lenguajes de programación de Coddy

Pasa del pseudocódigo al código real con Coddy

COMENZAR