Diagramas de flujo y pseudocódigo
Valentina atiende un puesto en la feria vecinal y quiere que la computadora le calcule el precio final de cada producto con el IVA. Antes de escribir una sola línea de código, tiene que decidir qué pasos seguir y en qué orden. Eso es un algoritmo, y en esta página vas a aprender a dibujarlo, a escribirlo en pseudocódigo y a comprobar si funciona.
Qué es un algoritmo y cómo se representa
Un algoritmo es una lista ordenada de pasos precisos que resuelve un problema. Una receta de torta frita, las instrucciones para sacar un boleto o el método para dar el vuelto son algoritmos.
Para que un algoritmo sirva tiene que ser claro (sin ambigüedades), tener un orden y terminar. Hay dos formas habituales de escribirlo:
-
Diagrama de flujo: un dibujo con figuras unidas por flechas.
-
Pseudocódigo: texto que parece un programa, pero sin las reglas estrictas de un lenguaje real. En Uruguay se usa mucho el estilo de PSeInt, un programa libre para practicar.
Las flechas indican el camino. Siempre hay un solo óvalo de inicio y uno de fin.
En un diagrama de flujo se usan distintas figuras geométricas. Indicá qué significa cada una de estas figuras: el óvalo (terminador), el rectángulo, el rombo y el…
En un diagrama de flujo se usan distintas figuras geométricas. Indicá qué significa cada una de estas figuras: el óvalo (terminador), el rectángulo, el rombo y el paralelogramo. Para cada una, escribí una frase que explique en qué momento de un algoritmo se usa.
Pseudocódigo al estilo de PSeInt
Un algoritmo en PSeInt tiene siempre esta forma:
Algoritmo Ejemplo
Definir a, b Como Entero
a <- 7
b <- 3
Escribir a + b
FinAlgoritmo
-
Algoritmo … FinAlgoritmomarca el inicio y el fin. -
Definir x Como Enteroreserva una variable (una «cajita» con nombre) y le dice qué tipo de dato guarda:Entero,Real,TextooLogico. -
x <- 5es la asignación: guarda el 5 enx. La flecha<-no es una igualdad, es una orden: «poné este valor ahí». -
Leer xpide un dato al usuario y lo guarda enx. -
Escribirmuestra un valor o un texto (los textos van entre comillas).
Los operadores son + - * /, MOD (resto de la división), = para comparar, <> para «distinto», >, <, >=, <=, y los lógicos Y, O, NO.
Observá el siguiente pseudocódigo escrito al estilo de PSeInt: Explicá qué hace cada una de las cinco líneas centrales (desde Definir hasta Escribir) y indicá qué valor…
Observá el siguiente pseudocódigo escrito al estilo de PSeInt:
Algoritmo Ejemplo
Definir a, b Como Entero
a <- 7
b <- 3
Escribir a + b
FinAlgoritmo
Explicá qué hace cada una de las cinco líneas centrales (desde Definir hasta Escribir) y indicá qué valor se muestra por pantalla al ejecutarlo.
Secuencia: un paso después de otro
La estructura más simple es la secuencia: las instrucciones se ejecutan en orden, de arriba hacia abajo, una sola vez. Casi todos los algoritmos empiezan así.
Con otros dos ingredientes (decidir y repetir) se puede armar cualquier algoritmo. Por eso las tres estructuras de control son secuencia, selección y repetición.
La prueba de escritorio consiste en «hacer de computadora» con lápiz y papel: seguís cada instrucción y anotás cómo cambian las variables. Es la mejor forma de encontrar errores antes de programar.
Clasificá cada situación según la estructura de control que predomina: secuencia, selección o repetición. a) Pedir dos números, sumarlos y mostrar el resultado. b) Si la…
Clasificá cada situación según la estructura de control que predomina: secuencia, selección o repetición.
- a) Pedir dos números, sumarlos y mostrar el resultado.
- b) Si la edad ingresada es mayor o igual que 18, mostrar «Mayor de edad»; si no, mostrar «Menor de edad».
- c) Pedir una contraseña hasta que el usuario escriba la correcta.
Justificá brevemente cada respuesta.
Valentina quiere un algoritmo que lea el precio de un producto en pesos y calcule el precio final con el IVA del 22 % incluido. Escribí en pseudocódigo (al estilo de…
Valentina quiere un algoritmo que lea el precio de un producto en pesos y calcule el precio final con el IVA del 22 % incluido. Escribí en pseudocódigo (al estilo de PSeInt) un algoritmo que pida el precio, calcule el precio final y lo muestre. Después hacé la prueba de escritorio con un precio de 500 pesos e indicá qué valor se muestra.
Selección: decidir entre caminos
La selección permite que el algoritmo elija qué hacer según una condición. En el diagrama es un rombo con dos salidas (Sí / No). En PSeInt:
Si condicion Entonces
// pasos si es verdadera
SiNo
// pasos si es falsa
FinSi
El SiNo es opcional. Las condiciones se pueden combinar: edad >= 12 Y edad <= 17, dia = 6 O dia = 7, NO (x = 0).
Mateo hizo este pseudocódigo para decidir si un estudiante salva un curso: a) Dibujá (o describí con precisión) el diagrama de flujo equivalente, indicando las figuras…
Mateo hizo este pseudocódigo para decidir si un estudiante salva un curso:
Leer nota
Si nota >= 6 Entonces
Escribir "Salvó"
Sino
Escribir "No salvó"
FinSi
- a) Dibujá (o describí con precisión) el diagrama de flujo equivalente, indicando las figuras que usarías.
- b) Indicá qué se muestra si la nota es 6, si es 5 y si es 12.
- c) Explicá qué problema tiene el algoritmo si el usuario ingresa una nota de 12 y cómo lo corregirías, suponiendo que las notas válidas van de 1 a 12.
Repetición: hacer algo varias veces
La repetición (bucle o ciclo) ejecuta un bloque varias veces. En PSeInt hay tres formas:
| Estructura | Cuándo usarla |
|---|---|
Para i <- 1 Hasta 5 Con Paso 1 Hacer … FinPara |
Sabés cuántas veces repetir. |
Mientras condicion Hacer … FinMientras |
Repite mientras la condición sea verdadera; puede no ejecutarse ninguna vez. |
Repetir … Hasta Que condicion |
Ejecuta al menos una vez y repite hasta que la condición sea verdadera. |
En un diagrama, la repetición es un rombo cuya flecha «Sí» vuelve hacia atrás, formando un lazo.
Dos variables aparecen casi siempre: un acumulador (suma o va juntando: suma <- suma + i, empieza en 0) y un contador (cuenta: cont <- cont + 1, empieza en 0).
Analizá el siguiente algoritmo: a) Completá una tabla de seguimiento con los valores de i y suma en cada vuelta del ciclo. b) Indicá qué valor se muestra al final. c)…
Analizá el siguiente algoritmo:
suma <- 0
Para i <- 1 Hasta 5 Con Paso 1 Hacer
suma <- suma + i
FinPara
Escribir suma
- a) Completá una tabla de seguimiento con los valores de
iysumaen cada vuelta del ciclo. - b) Indicá qué valor se muestra al final.
- c) Modificá el algoritmo para que sume solamente los números pares entre 1 y 10.
La cooperativa de un barrio de Canelones quiere un algoritmo para la feria vecinal. El algoritmo debe leer los importes de las ventas del día, uno por uno, hasta que se…
La cooperativa de un barrio de Canelones quiere un algoritmo para la feria vecinal. El algoritmo debe leer los importes de las ventas del día, uno por uno, hasta que se ingrese el valor 0 (que indica el fin de la carga). Al terminar tiene que mostrar la cantidad de ventas, el total recaudado y el promedio por venta.
- a) Escribí el pseudocódigo con una estructura de repetición adecuada.
- b) Explicá por qué elegiste ese tipo de repetición y no otro.
- c) Indicá qué problema aparece si se ingresa 0 como primer valor y cómo lo resolverías para no dividir entre cero.
Probar y corregir un algoritmo
Un algoritmo que «parece bien» puede fallar con ciertos datos. Por eso se prueba con una prueba de escritorio usando varios casos: uno normal, uno en el límite y uno que pueda romperlo.
Se propone este algoritmo, que debería mostrar el mayor de tres números ingresados: a) Probalo con los valores (a, b, c) = (9, 4, 6) y con (5, 2, 8). Indicá qué muestra…
Se propone este algoritmo, que debería mostrar el mayor de tres números ingresados:
Leer a, b, c
Si a > b Entonces
mayor <- a
Sino
mayor <- b
FinSi
Si c > b Entonces
mayor <- c
FinSi
Escribir mayor
- a) Probalo con los valores (a, b, c) = (9, 4, 6) y con (5, 2, 8). Indicá qué muestra en cada caso.
- b) Demostrá con un caso concreto que el algoritmo es incorrecto.
- c) Reescribí el algoritmo en pseudocódigo para que funcione para cualquier combinación de valores y explicá qué cambiaste y por qué.
Volvé al principio: el algoritmo de Valentina es una secuencia (leer, multiplicar por 1,22, mostrar), y con la prueba de escritorio comprobó que 500 pesos pasan a ser 610.