Un diagrama de flujo es un esquema gráfico que se utiliza para describir
un algoritmo sin necesidad de escribir el código de programación. Su utilidad fundamental es mostrar que el algoritmo que tenemos previsto programar funciona. Una vez que el diagrama de flujo es coherente, podemos pasar a codificarlo en Matlab o en cualquier otro lenguaje.
Básicamente se utilizan los siguientes símbolos:
Ejemplo 1: Queremos construir un algoritmo para resolver ecuaciones de segundo grado. Como sabemos, dado una ecuación del tipo a x2 + b x + c = 0, las dos raíces vienen expresadas por la fórmula:
Para que haya raíces reales la cantidad b2 - 4ac, llamada "discriminante",
debe ser positiva. Podemos diseñar un programa que tenga el siguiente diagrama de flujo:
Se trataría de introducir los tres parámetros a, b , c - que en Matlab se
puede hacer mediante el comando "input"- , a continuación asignamos a una variable "discr" la cantidad b^2 - 4*a*c _ en Matlab con el operador de asignación "=" _ ; ahora se pone la condición discr > 0, en caso de ser cierta se pasa a calcular las soluciones y a desplegarlas en pantalla -con "disp" para el Matlab - , y en caso de ser falsa desplegar un mensaje de fracaso; y finalizar el programa. El código en Matlab sería:
Ejemplo 2: Queremos diseñar un algoritmo para extraer la mayor
componente de un vector de 10 componentes.
Analicemos la estrategia a seguir, consideremos el vector v siguiente:
Podemos tomar una variable (llamémosla "Mayor") que vaya
almacenando la componente mayor. Si comenzamos a analizar por la izquierda, inicialmente la componente mayor será la primera (i=1).
A continuación comprobaremos con un bucle, desde la posición "i" (o sea
desde la primera) hasta la 10, si este Mayor es menor que alguno de los siguientes. Esto nos sugiere un bucle iterativo (j = i:10), en cuyo interior se realice una comparación del tipo (Mayor < v(j)).
En caso de que esta condición sea falsa (como sucede para la
componente j=4) entonces hacemos Mayor = v(j), o sea, en este caso Mayor = v(4), y también i=j, así almacenamos en "Mayor" el valor mayor en este momento (el 6), y almacenamos en "i" la posición en que éste se encuentra (la cuarta). El diagrama de flujo de este algoritmo sería:
El programa Matlab, podría ser algo así:
Como ejemplo final consideremos el diagrama de flujo para el "algoritmo de bisección" (ver tema 1 de teoría). El algoritmo de bisección puede cargarlo aquí: biseccion.m .