Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad de Logica
Unidad de Logica
Estructuras de control
Introduccin
Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo,
existen tareas ms complejas que no pueden ser resueltas empleando un esquema tan sencillo, en ocasiones es
necesario repetir una misma accin un nmero determinado de veces o evaluar una expresin y realizar acciones
diferentes en base al resultado de dicha evaluacin.
Para resolver estas situaciones existen las denominadas estructuras de control que poseen las siguientes
caractersticas:
Una estructura de control tiene un nico punto de entrada y un nico punto de salida.
Tales caractersticas permiten desarrollar de forma muy flexible todo tipo de algoritmos an cuando slo existen
tres tipos fundamentales de estructuras de control:
Secuencial.
Alternativa.
Repetitiva.
A lo largo de esta leccin se presentarn las distintas estructuras de control, la forma de representarlas en la
notacin algortmica y las correspondientes sentencias FORTRAN para poder utilizarlas en nuestros programas.
Estructura secuencial
La estructura secuencial es la ms sencilla de todas, simplemente indica al
procesador que debe ejecutar de forma consecutiva una lista de acciones (que pueden ser, a
su vez, otras estructuras de control); para construir una secuencia de acciones basta con
escribir cada accin en una linea diferente. A continuacin se muestra una composicin
secuencial de acciones en notacin algortmica y su equivalente FORTRAN.
leer a
leer b
c ! a + b
escribir c
read *, a
read *, b
c = a + b
print *, c
Accin 1
Accin 2
Existe una forma alternativa de expresar una estructura secuencial escribiendo varias
acciones en la misma lnea pero utilizando el punto y coma, ;, como separador. Sin embargo,
esta ltima notacin es desaconsejable puesto que puede llegar a hacer el cdigo bastante
difcil de leer.
leer a; leer b
c ! a + b; escribir c
Punto de entrada
...
Accin n
read *, a; read *, b
c = a + b; print *, c
Punto de salida
Estructura alternativa
La estructura alternativa permite bifurcar el flujo del programa en funcin de una expresin lgica;
disponemos de tres estructuras alternativas diferentes: alternativa simple, alternativa doble y alternativa mltiple.
Punto de entrada
VERDADERO
FALSO
Expresin
lgica
Accin
Punto de salida
if (radio>0) then
longitud = 2*pi*radio
end if
Punto de entrada
VERDADERO
Expresin
lgica
Accin
FALSO
Accin
Punto de salida
En el siguiente ejemplo se calcula la longitud de una circunferencia si el radio es positivo no nulo y, en caso
contrario, se proporciona un mensaje de error:
si radio>0 entonces
longitud ! 2piradio
si no
escribir Radio incorrecto
fin_si
if (radio>0) then
longitud = 2*pi*radio
else
print *, Radio incorrecto
end if
Estructura multialternativa
Esta estructura 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.
La sintaxis de esta estructura es la siguiente:
select case (expresin)
case (valor1)
accin 1
case (valor2)
accin 2
...
case (valorn)
accin n
case default
accin
end select
segun expresin
caso valor1:
accin 1
caso valor2:
accin 2
...
caso valorN:
accin n
otro caso:
accin
fin segn
Punto de entrada
Expresin selectora
Valor 1
Accin 1
Valor 2
Accin 2
Valor N
...
Accin N
Resto
valores
Accin
Punto de salida
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
Estructura repetitiva
La estructura repetitiva o iterativa permite, como su propio nombre indica, repetir una accin (o grupo de
acciones); dicha repeticin puede llevarse a cabo un nmero prefijado de veces o depender de la evaluacin de una
expresin lgica. Existen tres tipos de estructuras repetitivas: desde-hasta, mientras y repetir-hasta.
Estructura desde-hasta
Esta estructura permite repetir la ejecucin de una accin o de un grupo de acciones un nmero determinado
de veces; la sintxis es la siguiente:
desde indice!inicio hasta fin [con paso valor] hacer
accin
fin desde
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.
do n=1, 10
print *, n
end do
do n=10, 1
print *, n
end do
El bucle anterior no se ejecuta nunca puesto que no se puede alcanzar 1 comenzando en 10 y avanzando con
paso +1; atencin! Un error frecuente es pensar que el bucle se ejecuta de forma infinita.
desde n!10 hasta 1 con paso 2 hacer
escribir n
fin desde
do n=10, 1, -2
print *, n
end do
Estructura mientras
Esta estructura repite una accin o grupo de acciones mientras
una expresin lgica sea cierta; la sintxis en la notacin algortmica y en
FORTRAN es la siguiente:
mientras expresin lgica hacer
accin
fin desde
Punto de entrada
VERDADERO
Expresin
lgica
Accin
do while (radio<0)
print *, Radio?
read *, radio
end do
Punto de salida
FALSO
Estructura repetir-hasta
Esta estructura repite una accin o grupo de acciones hasta que una expresin lgica sea cierta; la sintxis en
la notacin algortmica es la siguiente (no existe equivalente en FORTRAN pero s en otros lenguajes de programacin):
repetir
accin
hasta expresin lgica
Un aspecto muy importante de la presente estructura de control es que 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.
Punto de entrada
Accin
Expresin
lgica
FALSO
VERDADERO
Punto de salida
Resumen
1.
Las estructuras de control permiten alterar el flujo secuencial de los algoritmos que hemos visto hasta el
momento.
2.
3.
Secuencial.
Alternativa.
Repetitiva.
4.
La estructura secuencial es una lista consecutiva de acciones donde el orden de aparicin indica el orden
de ejecucin.
5.
Simple.
Doble.
Multialternativa.
6.
La estructura alternativa simple permite evaluar una expresin lgica y ejecutar una accin si dicha
expresin es cierta.
7.
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.
8.
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.
9.
Estructura desde-hasta
Estructura mientras
Estructura repetir-hasta
10. La estructura desde-hasta permite repetir la ejecucin de una accin un nmero determinado de veces.
11. La estructura mientras repite una accin mientras una expresin lgica sea cierta; esta estructura puede
ejecutarse 0 ms veces.
12. La estructura repetir-hasta repite una accin hasta que una expresin lgica sea cierta; esta estructura
siempres se ejecuta 1 vez al menos y no existe en el lenguaje FORTRAN aunque aparece en otros
lenguajes de programacin.
Punto de entrada
Punto de entrada
Accin 1
VERDADERO
Punto de entrada
FALSO
Expresin
lgica
VERDADERO
FALSO
Expresin
lgica
Accin 2
Accin
...
Accin
Accin
Accin n
Punto de salida
Punto de salida
Estructura secuencial
Punto de salida
Punto de entrada
Accin 1
Valor 2
Accin 2
VERDADERO
Valor N
...
Punto de entrada
Punto de entrada
Expresin selectora
Valor 1
Accin N
Resto
valores
Accin
Expresin
lgica
FALSO
Accin
Expresin
lgica
Accin
FALSO
VERDADERO
Punto de salida
Punto de salida
Estructura mientras
Punto de salida
Estructura repetir-hasta