Algoritmos: Diagramas de Flujo Algoritmo

UNIVERSIDAD DE TALCA
FACULTAD DE INGENIERÍA
ESCUELA DE INGENIERÍA CIVIL INDUSTRIAL
Algoritmos: Diagramas de Flujo
Ya sabemos que cuando se ejecuta un programa, tanto el programa, como los datos que éste utiliza, se
almacenan en la memoria. También tenemos una idea de cómo opera la máquina, en este bajo nivel,
cuando se ejecutan las instrucciones de un programa para resolver un problema determinado.
Sin embargo, los problemas que vamos a resolver son un poco más complejos que los que hemos visto
hasta ahora, por lo cual un enfoque de más alto nivel, resulta más conveniente, para desarrollar la
solución a un problema.
Dentro de este enfoque de alto nivel, emplearemos algunas herramientas, como diagramas de flujo,
tablas de decisión, seudocódigo entre otras, y un lenguaje en su forma simplificada, Python, para
construir y especificar los algoritmos que den solución a un problema dado.
Algoritmo
Un algoritmo consiste en la definición de las operaciones a realizar para resolver un problema
determinado en un número finito de pasos y siguiendo un orden específico. Como estudiamos
previamente, empleamos algoritmos en la vida la real todo el tiempo. Consideremos por ejemplo el
problema de cómo clavar un clavo. Usted podría dar las siguientes indicaciones:
1. Tome el clavo y colóquelo perpendicularmente a la pared, sujetándolo con la mano izquierda.
2. Coja el martillo con la mano derecha y sitúelo a unos 20 cm perpendicularmente al clavo.
3. Golpee la cabeza del clavo con el martillo, tantas veces como sea necesario.
Las operaciones anteriores concuerdan con la definición previa de algoritmo, por lo tanto hemos
definido un algoritmo que permite resolver el problema de cómo clavar un clavo.
Una definición un poco más específica de algoritmo sería: “Procedimiento o método no ambiguo para
resolver un problema de tal forma que después de la ejecución de una serie finita de acciones se obtiene
una solución si existe, o informa que no tiene solución”
Consideremos el problema de determinar el valor de la hipotenusa en un triángulo rectángulo, dado los
valores de los catetos. Un algoritmo que resuelve este problema podría ser el siguiente:
Tome el valor de un cateto y multiplíquelo por sí mismo
Tome el valor del otro cateto y multiplíquelo por sí mismo
Tome los resultados anteriores y súmelos
Determine la raíz del resultado de la suma anterior. Este es el valor de la hipotenusa buscada.
El algoritmo definido pareciera funcionar. Sin embargo alguien podría pensar que no es muy preciso.
¿Qué se entiende por tomar? ¿Se necesitará un vaso?
Para hacer más preciso un algoritmo, de forma que, independientemente de quien lo lea, la
interpretación sea la misma, se han definido herramientas para especificarlo. Las dos herramientas más
utilizadas son los Diagramas de flujo.
Diagrama de Flujo
Un diagrama de flujo es la representación gráfica de un algoritmo, de forma tal que mediante ciertos
símbolos se indican los tipos de operaciones que componen el algoritmo y el orden en que éstas se
ejecutan está dado por la dirección de las conexiones.
Un diagrama de flujo parte con un símbolo de inicio, como el que se muestra en la siguiente figura e
indica el comienzo del algoritmo y debe aparecer una única vez en el diagrama de flujo.
Inicio
Inicio del Programa
A continuación, conectados mediante flechas, se dibujan los símbolos que representen entrada o salida
de datos, operaciones según sea la forma del algoritmo. Estos símbolos pueden contener algún texto
que indique la naturaleza de la operación. Las flechas van a indicar la secuencia de ejecución de las
distintas operaciones.
Por ejemplo, en el símbolo de entrada se puede indicar la(s) variable(s) que reciben valor en tiempo de
ejecución, por parte del usuario, tal como se muestra en la siguiente figura:
var1, var2
Entrada de datos
Por ejemplo, en el símbolo de operación como se muestra a continuación, se puede indicar la asignación
de un valor en la memoria. También utilizando este símbolo se puede indicar la ejecución de una
operación aritmética cuyo resultado se almacene en la memoria.
x ← 4
Procesamiento de datos
Finalmente en el símbolo de salida, se pueden colocar las variables cuyo valor queremos mostrar por
pantalla. En este caso también es posible colocar textos (cadenas de caracteres), como se muestra en la
siguiente figura:
‘total’, suma
Salida de datos
Para terminar el diagrama de flujo se dibujo el símbolo fin, el cual puede aparecer una única vez en el
algoritmo e indica el fin del algoritmo.
Fin
Fin del programa
En la siguiente figura representamos el diagrama de flujo de un algoritmo para calcular el valor de la
hipotenusa, para un triángulo rectángulo, dado que se conocen los lados:
Inicio
lado1, lado2
l1_cuadrado ← lado1^2
l2_cuadrado ← lado2^2
suma ← l1_cuadrado + l2_cuadrado
hipotenusa ← sqrt( suma )
hipotenusa
Fin
En este caso se inicia el algoritmo con el símbolo para inicio, luego se realizan las operaciones de
entrada de datos, en este caso, de los lados del triángulo. A continuación se ejecutan las operaciones:
elevar al cuadrado cada uno de los lados, sumarlos y calcular la raíz cuadrada de la suma. Finalmente se
muestra el valor encontrado para la hipotenusa y termina la ejecución del algoritmo con el símbolo fin
Observe que en cada proceso operación de datos, el resultado de la operación –lado derecho de la
expresión– queda almacenado en la variable, la cual aparece a la izquierda.
Observe como la secuencia de las flechas indican el orden en que se ejecutan las operaciones.
Características
Algunos requisitos que deben cumplir los diagramas de flujo para que estén correctamente dibujados y
algunas recomendaciones se listan a continuación:











debe tener un comienzo al inicio del diagrama,
debe tener un final al final del diagrama
los símbolos de inicio y fin aparecen sólo una vez en el programa
las operaciones van en el centro, entre los símbolos de inicio y fin.
las secuencias de ejecución de las operaciones se representan por flechas. Estas deben ir de
izquierda a derecha, y de arriba hacia abajo en lo posible.
a un punto puede llegar más de una línea pero debe salir solo una.
se debe evitar el cruce de líneas utilizando los conectores.
Se deben usar conectores solo cuando sea necesario.
No deben quedar líneas de flujo son conectar.
Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de
muchas palabras
Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda
a derecha.
Los símbolos que utilizaremos han sido normalizados por el instituto norteamericano de normalización
(ANSI).