Condicionales y bucles en pseudocódigo
En el centro escolar, la nota de cada estudiante se revisa una por una: si es de 5.0 o más, "Aprobado"; si no, "Aplazado". Ningún docente decide eso a ojo, sigue una regla y la repite con cada nota. Un programa hace lo mismo: decide con condicionales y repite con bucles. En esta página aprendés a escribir ambas cosas en pseudocódigo y a seguirlas paso a paso.
Leer, escribir y asignar
El pseudocódigo es una forma de escribir un algoritmo en español, con reglas simples, sin preocuparse por la sintaxis de un lenguaje real. Usa pocas instrucciones:
| Instrucción | Qué hace |
|---|---|
leer n |
pide un dato al usuario y lo guarda en n |
escribir "Hola" |
muestra un mensaje o un valor |
suma ← suma + 1 |
asigna: calcula lo de la derecha y lo guarda en la variable de la izquierda |
La flecha ← no es una igualdad: i ← i + 1 significa «tomá el valor de i, sumale 1 y guardá el resultado otra vez en i».
Los programas se ejecutan de arriba hacia abajo, una instrucción a la vez. Eso se llama estructura secuencial. Los condicionales y los bucles rompen esa línea recta: unos eligen camino y otros dan vueltas.
Condicional simple: si … entonces
A veces una acción solo debe hacerse si se cumple una condición. Una condición es una pregunta que se responde con VERDADERO o FALSO, por ejemplo n > 0.
leer n
si n > 0 entonces
escribir "Positivo"
fin si
Si la condición es verdadera, se ejecuta lo que está entre entonces y fin si. Si es falsa, ese bloque se salta y el programa sigue después.
En un diagrama de flujo, la decisión es un rombo con dos salidas: una para «sí» y otra para «no».
Con el programa de arriba: si el usuario ingresa 4, la condición 4 > 0 es verdadera y se escribe «Positivo». Si ingresa -2, -2 > 0 es falsa y no se escribe nada.
Observá este pseudocódigo: Indicá qué se escribe si el usuario ingresa 4 y qué se escribe si ingresa -2. Explicá la diferencia entre una estructura if y una if-else.
Observá este pseudocódigo:
leer n
si n > 0 entonces
escribir "Positivo"
fin si
Indicá qué se escribe si el usuario ingresa 4 y qué se escribe si ingresa -2. Explicá la diferencia entre una estructura if y una if-else.
Condicional compuesto: si … sino
El condicional simple solo hace algo cuando la condición es verdadera. Con sino también indicás qué hacer cuando es falsa. Siempre se ejecuta exactamente una de las dos ramas.
leer nota
si nota >= 5.0 entonces
escribir "Aprobado"
sino
escribir "Aplazado"
fin si
Esta es la diferencia entre if y if-else: el if puede no hacer nada; el if-else siempre elige entre dos caminos.
Un programa también puede decidir con más de dos caminos poniendo un condicional dentro del sino:
si n mod 2 == 0 entonces
escribir "Par"
sino
si n mod 5 == 0 entonces
escribir "Múltiplo de 5"
sino
escribir n
fin si
fin si
Aquí mod da el residuo de la división: 10 mod 2 es 0. El orden importa: se pregunta primero lo más prioritario, y el resto solo se evalúa si lo anterior fue falso.
Escribí en pseudocódigo un programa que lea la nota de un estudiante de Tercer Ciclo (de 0 a 10) y escriba "Aprobado" si la nota es mayor o igual que 5.0, y "Aplazado"…
Escribí en pseudocódigo un programa que lea la nota de un estudiante de Tercer Ciclo (de 0 a 10) y escriba "Aprobado" si la nota es mayor o igual que 5.0, y "Aplazado" en caso contrario. Usá una estructura if-else. Después indicá qué escribe con las notas 4.9 y 5.0.
Dibujá con palabras, describiendo cada símbolo (inicio, entrada, decisión, proceso, salida y fin), un diagrama de flujo que lea el precio de un producto y, si el precio…
Dibujá con palabras, describiendo cada símbolo (inicio, entrada, decisión, proceso, salida y fin), un diagrama de flujo que lea el precio de un producto y, si el precio es mayor que 20 dólares, calcule un descuento del 10 %; si no, lo deje igual. El diagrama debe mostrar el precio final. Indicá cuál es el precio final para 30 dólares y para 12 dólares.
Diagramas de flujo
Un diagrama de flujo dibuja el mismo algoritmo con símbolos y flechas:
| Símbolo | Significado |
|---|---|
| Óvalo | inicio o fin |
| Paralelogramo | entrada o salida (leer, escribir) |
| Rectángulo | proceso (cálculo, asignación) |
| Rombo | decisión (condición con sí / no) |
Para pasar de pseudocódigo a diagrama, cada instrucción se vuelve un símbolo y las flechas siguen el orden de ejecución. Un si-sino es un rombo con dos salidas que luego se juntan de nuevo.
Bucle para: repetir un número conocido de veces
Si querés escribir los números del 1 al 4, podrías poner cuatro veces escribir. Pero ¿y del 1 al 1,000? Un bucle repite instrucciones y automatiza lo repetitivo.
El bucle para se usa cuando sabés cuántas veces hay que repetir:
para i desde 1 hasta 4 hacer
escribir i
fin para
La variable i (el contador) toma el valor 1, luego 2, 3 y 4. El cuerpo se ejecuta una vez por cada valor, así que aquí se repite 4 veces y se escribe 1, 2, 3, 4.
Con un bucle podés combinar condicionales: dentro del cuerpo, i ya tiene un valor y se puede preguntar por él.
Observá este pseudocódigo: Escribí los valores que se muestran en pantalla, en orden, e indicá cuántas veces se repite el cuerpo del bucle.
Observá este pseudocódigo:
para i desde 1 hasta 4 hacer
escribir i
fin para
Escribí los valores que se muestran en pantalla, en orden, e indicá cuántas veces se repite el cuerpo del bucle.
Gabriela quiere un programa que muestre los números del 1 al 30 y, para cada uno, escriba "Par" si es múltiplo de 2, "Múltiplo de 5" si es múltiplo de 5 y no de 2, o…
Gabriela quiere un programa que muestre los números del 1 al 30 y, para cada uno, escriba "Par" si es múltiplo de 2, "Múltiplo de 5" si es múltiplo de 5 y no de 2, o solo el número en cualquier otro caso. Escribí el pseudocódigo combinando un bucle con condicionales (podés usar el operador mod para el residuo). Luego indicá qué se escribe para los valores 5, 10 y 7, y explicá por qué el orden de las condiciones importa.
Bucle mientras y tablas de seguimiento
El bucle mientras se usa cuando no sabés de antemano cuántas vueltas dará: repite mientras una condición sea verdadera. La condición se revisa antes de cada vuelta.
suma ← 0
i ← 1
mientras i <= 5 hacer
suma ← suma + i
i ← i + 1
fin mientras
escribir suma
Un bucle mientras necesita tres cosas: empezar la variable (i ← 1), una condición (i <= 5) y algo dentro que cambie la condición (i ← i + 1). Si falta lo último, nunca termina: es un bucle infinito.
Para entender qué hace un programa, hacé una tabla de seguimiento: una fila por vuelta, con el valor de cada variable al final.
¿for o while?
para (for) |
mientras (while) |
|
|---|---|---|
| Cuándo usarlo | sabés cuántas vueltas | no sabés cuántas, depende de una condición |
| Ejemplo | escribir los números del 1 al 4 | pedir una contraseña hasta que sea correcta |
| El contador | lo maneja el propio bucle | lo cambiás vos dentro del cuerpo |
Explicá en qué se diferencia un bucle for de un bucle while. Indicá en qué situación conviene usar cada uno y dá un ejemplo breve de cada situación.
Explicá en qué se diferencia un bucle for de un bucle while. Indicá en qué situación conviene usar cada uno y dá un ejemplo breve de cada situación.
Observá este pseudocódigo: Hacé una tabla de seguimiento con los valores de i y suma al final de cada repetición, e indicá qué valor se escribe al final.
Observá este pseudocódigo:
suma ← 0
i ← 1
mientras i <= 5 hacer
suma ← suma + i
i ← i + 1
fin mientras
escribir suma
Hacé una tabla de seguimiento con los valores de i y suma al final de cada repetición, e indicá qué valor se escribe al final.
Casos especiales y depuración
Los errores de un algoritmo suelen aparecer en los casos límite: el cero, el valor justo de la frontera o una condición que nunca cambia. Probalos siempre.
Observá este pseudocódigo: Aquí div es la división entera (sin decimales). Seguí el programa para $n = 13$ con una tabla de seguimiento y decí qué valor escribe. Luego…
Observá este pseudocódigo:
leer n
cont ← 0
mientras n > 0 hacer
n ← n div 2
cont ← cont + 1
fin mientras
escribir cont
Aquí div es la división entera (sin decimales). Seguí el programa para $n = 13$ con una tabla de seguimiento y decí qué valor escribe. Luego explicá qué calcula el programa en general y qué pasa si el usuario ingresa 0. Por último, proponé un cambio para que el programa nunca quede en un bucle infinito si se modifica la instrucción n ← n div 2 por error y se omite.
Volvé al principio: la revisión de notas en el centro escolar es un para (una vuelta por estudiante) con un si-sino adentro (aprobado o aplazado). Decidir y repetir, las dos ideas de esta página.
Resumen
-
Un condicional simple (
si … entonces … fin si) ejecuta un bloque solo si la condición es verdadera; el compuesto (si … sino) elige siempre entre dos caminos. -
El orden de las condiciones importa cuando hay varias; probá siempre los valores límite (
>frente a>=). -
para i desde a hasta bse usa cuando sabés cuántas vueltas habrá: se repite $b - a + 1$ veces. -
mientrasrepite mientras la condición sea verdadera; necesita algo dentro que la cambie, o será un bucle infinito. -
Una tabla de seguimiento (una fila por vuelta con el valor de cada variable) permite entender y depurar un programa.
-
En diagramas de flujo: óvalo (inicio/fin), paralelogramo (entrada/salida), rectángulo (proceso), rombo (decisión).