Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estructuras de Control
Hasta ahora algoritmos han consistido en simples secuencias de instrucciones Existen tareas ms complejas que no pueden ser resueltas as (repetir una misma accin, realizar acciones diferentes en funcin del valor de una expresin, etc.) Para resolver esto existen las estructuras de control:
n
Una estructura de control tiene un nico punto de entrada y un nico punto de salida. Una estructura de control se compone de sentencias o de otras estructuras de control. Secuencial. Alternativa. Repetitiva.
2
La ms sencilla, simplemente indica una secuencia de acciones a ser ejecutadas de forma consecutiva. La composicin secuencial no es conmutativa.
leer a leer b c a + b escribir c read *, a read *, b c = a + b print *, c
Accin 1
Accin 2 ...
Accin n
Punto de salida
Evala una expresin lgica y ejecuta una accin (o grupo de acciones) si es cierta y no hace nada si es falsa.
si expresin lgica entonces acciones fin_si if (expresin lgica) then acciones Punto de entrada end if
Ejemplo:
if (radio>0) then longitud=2*pi*radio end if
VERDADERO
Expresin lgica
FALSO
Accin
Punto de salida
Similar a la anterior, ejecuta una accin (o grupo de acciones) si la expresin es cierta y otra accin (o grupo) si es falsa.
si expresin lgica entonces acciones si no acciones fin_si if (expresin lgica) then acciones Punto de entrada else acciones end if
VERDADERO
Ejemplo:
if (radio>0) then longitud=2*pi*radio else print *, Error end if
Accin
Expresin lgica
FALSO
Accin
Punto de salida
Evala una expresin que pueda tomar n valores (enteros, caracteres y lgicos pero nunca reales) y ejecuta una accin o grupo de acciones diferente en funcin del valor tomado por la expresin selectora.
Punto de entrada
segun expresin caso valor1: accin 1 caso valor2: accin 2 ... caso valorN: accin n otro caso: accin fin segn
select case (expresin) case (valor1) accin 1 case (valor2) accin 2 ... case ( valorn ) accin n case default accin end select
Expresin selectora
Valor 1 Valor 2 Valor N Resto valores
Accin 1
Accin 2
...
Accin N
Accin
Punto de salida
Ejemplo:
select case (mes) case (1,3,5,7,8,10,12) print *, 31 case (4,6,9,11) print *, 30 case (2) print *, 28 case default print *, Mes incorrecto end select
segun mes caso 1,3,5,7,8,10,12: escribir 31 caso 4,6,9,11: escribir 30 caso 2: escribir 28 otro caso: escribir Mes incorrecto fin segn
Permite repetir la ejecucin de una accin o de un grupo de acciones un nmero determinado de veces.
desde indice inicio hasta fin [con paso valor] hacer accin fin desde do indice=inicio, fin, paso accin end do
En primer lugar, se asigna a la variable indice el valor de inicio. El bucle se ejecuta mientras indice no alcance el valor de fin . En cada iteracin el valor de indice es incrementado segn el paso indicado y se ejecuta la accin o grupo de acciones encerrados en el bucle. En caso de que no se indique ningn paso el que se emplear ser +1.
8
Ejemplos:
desde n 1 hasta 10 hacer escribir n fin desde do n=1, 10 print *, n end do desde n 10 hasta 1 hacer escribir n fin desde do n=10, 1 print *, n end do
desde n 10 hasta 1 con paso 2 hacer escribir n fin desde do n=10, 1, -2 print *, n end do
Repite una accin o grupo de acciones mientras una expresin lgica sea cierta. Punto de entrada
mientras expresin lgica hacer accin fin desde do while (expresin lgica) accin end do
VERDADERO
Expresin lgica
FALSO
Accin
Un aspecto muy importante de la presente estructura de control es que si la expresin lgica es inicialmente falsa el bucle no se ejecuta ni una sola vez; es decir, la estructura mientras iterar 0 ms veces.
Punto de salida
10
Repite una accin o grupo de acciones hasta que una expresin lgica sea cierta. Esta estructura no existe en FORTRAN pero s en otros lenguajes de programacin. Punto de entrada
repetir
Accin
La expresin lgica no se evala hasta el final con lo cual el bucle se ejecuta al menos una vez por contraposicin a la estructura anterior que poda no ejecutarse ninguna.
Expresin lgica
VERDADERO
FALSO
Punto de salida
11
Las estructuras de control permiten alterar el flujo secuencial algoritmos que hemos visto hasta el momento. Una estructura de control:
Tiene un nico punto de entrada y un nico punto de salida. Se compone de sentencias o de otras estructuras de control.
de los
n
n n n
n
n n n
La estructura secuencial es una lista consecutiva de acciones donde el orden de aparicin indica el orden de ejecucin. La estructura alternativa se presenta en tres formas:
Simple. Doble. Multialternativa .
La estructura alternativa simple permite evaluar una expresin l gica y ejecutar una accin si dicha expresin es cierta.
12
La estructura alternativa doble permite evaluar una expresin lgica y ejecutar una accin si dicha expresin es cierta y otra accin si dicha expresin es falsa. La estructura multialternativa consiste en una expresin selectora que puede tomar n valores diferentes y ejecuta una accin diferente por cada posible valor de la expresin selectora. La estructura repetitiva se presenta en tres formas:
n n n
La estructura desde-hasta permite repetir la ejecucin de una accin un nmero determinado de veces. La estructura mientras repite una accin mientras una expresin lgica sea cierta; esta estructura puede ejecutarse 0 ms veces. La estructura repetir-hasta repite una accin hasta que una expresin lgica sea cierta; esta estructura siempre se ejecuta 1 vez al menos y no existe en el lenguaje FORTRAN aunque aparece en otros lenguajes de programacin.
13