Volver a la portadaCiencias Computacionales y Tecnologías Digitales · 1° Bachillerato · Cambiar asignatura
Empezar gratis
1° EMS · Ciencias Computacionales y Tecnologías Digitales
Algoritmia y pensamiento computacional · Algoritmos y estructuras de control

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 cuatro figuras del diagrama de flujo: óvalo, rectángulo, rombo y paralelogramo Inicio / Fin Óvalo (terminador) Proceso Rectángulo ¿Condición? Rombo (decisión) Leer / Escribir Paralelogramo Óvalo: dónde empieza y dónde termina. Rectángulo: una operación o asignación (suma <- a + b). Rombo: una pregunta con dos salidas, Sí y No. Paralelogramo: entrada o salida de datos.

Las flechas indican el camino. Siempre hay un solo óvalo de inicio y uno de fin.

Practica★☆☆Sin empezar
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.

Resolver

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 … FinAlgoritmo marca el inicio y el fin.

  • Definir x Como Entero reserva una variable (una «cajita» con nombre) y le dice qué tipo de dato guarda: Entero, Real, Texto o Logico.

  • x <- 5 es la asignación: guarda el 5 en x. La flecha <- no es una igualdad, es una orden: «poné este valor ahí».

  • Leer x pide un dato al usuario y lo guarda en x.

  • Escribir muestra 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.

Practica★☆☆Sin empezar
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.

Resolver

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.

Practica★☆☆Sin empezar
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.

  1. a) Pedir dos números, sumarlos y mostrar el resultado.
  2. b) Si la edad ingresada es mayor o igual que 18, mostrar «Mayor de edad»; si no, mostrar «Menor de edad».
  3. c) Pedir una contraseña hasta que el usuario escriba la correcta.

Justificá brevemente cada respuesta.

Resolver
Practica★★☆Sin empezar
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.

Resolver

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).

Diagrama de flujo de una selección: si la nota es mayor o igual que 6 salvó, si no no salvó Inicio Leer nota nota >= 6 "No salvó" "Salvó" Fin No Sí
Practica★★☆Sin empezar
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
  1. a) Dibujá (o describí con precisión) el diagrama de flujo equivalente, indicando las figuras que usarías.
  2. b) Indicá qué se muestra si la nota es 6, si es 5 y si es 12.
  3. 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.
Resolver

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).

Practica★★☆Sin empezar
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
  1. a) Completá una tabla de seguimiento con los valores de i y suma en cada vuelta del ciclo.
  2. b) Indicá qué valor se muestra al final.
  3. c) Modificá el algoritmo para que sume solamente los números pares entre 1 y 10.
Resolver
Practica★★★Sin empezar
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.

  1. a) Escribí el pseudocódigo con una estructura de repetición adecuada.
  2. b) Explicá por qué elegiste ese tipo de repetición y no otro.
  3. c) Indicá qué problema aparece si se ingresa 0 como primer valor y cómo lo resolverías para no dividir entre cero.
Resolver

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.

Practica★★★Sin empezar
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
  1. a) Probalo con los valores (a, b, c) = (9, 4, 6) y con (5, 2, 8). Indicá qué muestra en cada caso.
  2. b) Demostrá con un caso concreto que el algoritmo es incorrecto.
  3. c) Reescribí el algoritmo en pseudocódigo para que funcione para cualquier combinación de valores y explicá qué cambiaste y por qué.
Resolver

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.

Resumen

Ver todos los ejercicios de este apartado