Sistemas Numericos
Enviado por jgomez6 • 5 de Junio de 2013 • 1.442 Palabras (6 Páginas) • 242 Visitas
Lección 4 – Estructuras de control
1
Estructuras de control
Introducción
Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo,
existen tareas más complejas que no pueden ser resueltas empleando un esquema tan sencillo, en ocasiones es
necesario repetir una misma acción un número determinado de veces o evaluar una expresión y realizar acciones
diferentes en base al resultado de dicha evaluación.
Para resolver estas situaciones existen las denominadas estructuras de control que poseen las siguientes
características:
• 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.
Tales características permiten desarrollar de forma muy flexible todo tipo de algoritmos aún cuando sólo existen
tres tipos fundamentales de estructuras de control:
• Secuencial.
• Alternativa.
• Repetitiva.
A lo largo de esta lección se presentarán las distintas estructuras de control, la forma de representarlas en la
notación algorítmica y las correspondientes sentencias FORTRAN para poder utilizarlas en nuestros programas.
Estructura secuencial
La estructura secuencial es la más 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 acción en una linea diferente. A continuación se muestra una composición
secuencial de acciones en notación algorítmica y su equivalente FORTRAN.
leer a
leer b
c ! a + b
escribir c
read *, a
read *, b
c = a + b
print *, c
Existe una forma alternativa de expresar una estructura secuencial escribiendo varias
acciones en la misma línea pero utilizando el punto y coma, ;, como separador. Sin embargo,
esta última notación es desaconsejable puesto que puede llegar a hacer el código bastante
difícil de leer.
leer a; leer b
c ! a + b; escribir c
read *, a; read *, b
c = a + b; print *, c
Por último, es necesario señalar un aspecto importante de la composición secuencial
y es que no es conmutativa.
Acción 1
Acción 2
Acción n
...
Punto de salida
Punto de entrada
Estructura alternativa
La estructura alternativa permite bifurcar el “flujo” del programa en función de una expresión lógica;
disponemos de tres estructuras alternativas diferentes: alternativa simple, alternativa doble y alternativa múltiple.
Estructura alternativa simple
Esta estructura permite evaluar una expresión lógica y en función de dicha evaluación ejecutar una acción (o
composición de acciones) o no ejecutarla; también se la suele denominar SI-ENTONCES. A continuación se muestra la
notación algorítmica y FORTRAN para la estructura alternativa simple.
si expresión lógica entonces
acciones
fin_si
if (expresión lógica) then
acciones
end if
Lección 4 – Estructuras de control
2
Acción
Punto de salida
Punto de entrada
Expresión
lógica
VERDADERO FALSO
En el siguiente ejemplo se calcula la longitud de una circunferencia si el radio es positivo no nulo:
si radio>0 entonces
longitud ! 2·pi·radio
fin_si
if (radio>0) then
longitud = 2*pi*radio
end if
Estructura alternativa doble
La estructura alternativa doble es similar a la anterior con la salvedad de que en este tipo de estructura se
indican acciones no sólo para la rama “verdadera” sino también para la “falsa”; es decir, en caso de la expresión lógica
evaluada sea cierta se ejecutan una acción o grupo de acciones y en cado de que sea falsa se ejecuta un grupo
diferente. La sintáxis en la notación algorítmica y en FORTRAN son las que se muestran a continuación:
si expresión lógica entonces
acciones
si no
acciones
fin_si
if (expresión lógica) then
acciones
else
acciones
end if
Acción
Punto de salida
Punto de entrada
Expresión
lógica
VERDADERO FALSO
Acción
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:
Lección 4 – Estructuras de control
3
si radio>0 entonces
longitud ! 2·pi·radio
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 evalúa una expresión que pueda tomar n valores (enteros, caracteres y lógicos pero nunca
reales) y ejecuta una acción o grupo de acciones diferente en función del valor tomado por la expresión selectora.
La sintaxis de esta estructura es la siguiente:
segun expresión
caso valor1:
acción 1
caso valor2:
acción 2
...
caso valorN:
acción n
otro caso:
acción
fin según
select case (expresión)
case (valor1)
acción 1
case (valor2)
acción 2
...
case (valorn)
acción n
case default
acción
end select
Punto de salida
Punto de entrada
Valor 1
Expresión selectora
Acción 1 Acción 2 Acción N Acción
Valor 2 Valor N Resto
valores
...
En el siguiente ejemplo se proporciona como salida el número de días de un mes dado:
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 según
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
Obsérvese que es posible
...