Diagrama de flujo

Solo disponible en BuenasTareas
  • Páginas : 16 (3822 palabras )
  • Descarga(s) : 0
  • Publicado : 8 de marzo de 2012
Leer documento completo
Vista previa del texto
Control de flujo
Al proceso de toma de decisiones se le llama control del flujo
Antes de ponerse a escribir el programa, sobre todo si es un poco largo o complejo, es útil trazar un esquema, en lenguaje corriente, de lo que se quiere hacer. A eso se le denomina un diagrama de flujo. Si lo que se pretende está claro, escribir el programa se reduce a traducir el diagrama de flujo del castellanoal lenguaje de Matlab.
Veamos un caso simple. Construyamos el diagrama de flujo de un programa que escoja un número al azar del 0 al 9 y nos pida que lo adivinemos. Una vez escogido el número, el programa debe informar si hemos acertado o no. El diagrama de flujo correspondiente es

 Diagrama de flujo.

En un diagrama de flujo ha de buscarse la claridad, la concisión, el rigor. Con un buendiagrama de flujo, gran parte del trabajo está hecho. Puede ser tentador comenzar a escribir directamente el programa en el editor, con la esperanza de hacerlo todo bien a la primera. Suele ser más eficaz, sin embargo, escribir antes el diagrama de flujo, para luego intentar pasarlo al lenguaje informático elegido.

Condiciones
Son las preguntas básicas a las que se puede responder sí o no
Paraimplementar el control del flujo, son muy útiles unas expresiones que permiten comparar dos variables entre sí o una variable con un valor fijo. En un programa, a veces es necesario preguntarse: ¿es x mayor que y? Pues si x es mayor que y, entonces ..., y si no, ... ; o bien: caso de que la variable x sea menor que cero, hacer tal cosa.
Las condiciones se construyen con operadores relacionales,como son los siguientes:

> | mayor que |
< | menor que |
== | igual que |
~= | diferente que |
<= | menor o igual que |
>= | mayor o igual que |
| |

Una condición, como se ha indicado, sólo admite dos respuestas: verdadero o falso. Así, a la pregunta ¿es x mayor o igual que y?, que en el lenguaje de Matlab se expresa x>=y, sólo caben dos respuestas posibles: sí,es cierto, x es mayor o igual que y; o bien, no, es falso, x no es mayor o igual que y.
Dos observaciones. La primera: el operador relacional igual que se construye con dos símbolos ==. El motivo es el siguiente: si se escribe x=3, el resultado es que se le asigna a x el valor 3. No se hace ninguna pregunta. Si lo que se desea es preguntar ¿es x igual a 3?, no se puede escribir x=3, pues en estecaso x tomaría el valor 3, independientemente de lo que valiera antes. En cambio, x==3 es el análogo en lenguaje informático a la pregunta: ¿es x igual a 3?. Tras la pregunta x==3 la variable x sigue valiendo lo mismo que antes.La segunda observación es una pequeña astucia: la tilde ~ del operador diferente que se consigue apretando la tecla Alt y -sin soltarla- escribiendo con el teclado el número126. En algunos sistemas operativos, también sirve apretar AltGr y, sin soltarla, apretar la tecla 4.
Las condiciones se pueden agrupar en construcciones lógicas: condición1 Y condición2, condición1 O condición2, etcétera. Consúltese el manual de Matlab en lo relativo a este tópico.
En resumen: con las expresiones relacionales se pueden realizar preguntas de respuesta unívoca (verdadero ofalso), que permitan luego tomar una decisión.

Ramificaciones
Dependiendo de una condición, el programa decide el curso que seguirá
El resultado de una condición permite tomar una decisión, es decir, si la condición es verdadera se ejecutan determinadas sentencias. El diagrama de flujo se ramifica:
 Ramificación if
La ramificación más simple, expresada en este diagrama de flujo, se obtiene conla siguente sintaxis:
if (condición)
    Sentencias
End
(Lo que va en cursiva, hay que sustituirlo por las expresiones adecuadas; if y end son palabras clave del lenguaje informático, y no se pueden utilizar para otra cosa, p. ej. una variable no puede -no debería- llamarse if).
Un caso concreto:
if(length(sitios)>1)
      Recta=polyfit(x,y,1);
End
Leído en lenguaje corriente: si la...
tracking img