2.
- ESTRUCTURA DE CONTROL
Son instrucciones que rompen la secuencialidad de la ejecución de un
programa; esto significa que una estructura de control permite que se realicen
unas instrucciones y omitir otras, de acuerdo a la evaluación de una condición.
También son estructura de control aquellas que permiten modificar el flujo
de ejecución de las instrucciones de un programas.
Ahora bien, con las estructuras de control se realiza lo siguiente usando las
instrucciones correctas::
De acuerdo con una condición, ejecutar un grupo u otro de sentencias (If-
Then-Else)
De acuerdo con el valor de una variable, ejecutar un grupo u otro de
sentencias (Switch-Case)
Ejecutar un grupo de sentencias solo cuando se cumpla una condición (Do-
While)
Ejecutar un grupo de sentencias hasta que se cumpla una condición (Do-
Until)
Ejecutar un grupo de sentencias un número determinado de veces (For-
Next)
Para resolver situaciones, las estructuras de control 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.
Estas características ayudan a desarrollar de forma muy flexible todo tipo
de algoritmos, aun cuando solo existen tres tipos fundamentales de
estructuras de control, las cuales se nombran y se desglosan:
Estructura Secuencial
Estructura Alternativa
Estructuras Repetitivas
ESTRUCTURA SECUENCIAL
Esta estructura 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 línea diferente. A continuación
se muestra una composición secuencial de acciones en notación algorítmica y su
equivalente FORTRAN
leer a read *, a
leer b read *, b
c←a+b c=a+b
escribir c 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 read *, a; read *, b
c ← a + b: escribir c c = a + b; print *, c
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 lanotación
algorítmica y FORTRAN para la estructura alternativa simple.
si expresión lógica entonces if (expresión lógica) then
acciones acciones
fin_si end if
En el siguiente ejemplo se calcula la longitud de una circunferencia si el radio
es positivo no nulo:
si radio > 0 entonces if (radio>0) then
longitud ← 2·pi·radio longitud = 2 * pi * radio
fin_si 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 caso de que sea falsa se ejecuta un
grupo diferente. La sintaxis en la notación algorítmica y en FORTRAN son las que se
muestran a continuación:
si expresión lógica entonces if (expresión lógica) then
acciones acciones
si no else
acciones acciones
fin_si end if
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 if (radio > 0) then
longitud ← 2·pi·radio longitud = 2 * pi * radio
si no else
escribir ‘Radio incorrecto’ print *, ‘Radio incorrecto’
fin_si end if
ESTRUCTURA ALTERNATIVA MULTIPLE
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 select case (expresión)
caso valor1: case (valor1)
acción 1 acción 1
caso valor2: case (valor2)
acción 2 acción 2
... ...
caso valor N: case (valorn)
acción n acción n
otro caso: case default
acción acción
fin según end select
En el siguiente ejemplo se proporciona como salida el número de días de un mes
dado:
segun mes select case (mes)
caso 1,3,5,7,8,10,12: case (1,3,5,7,8,10,12)
escribir ‘31’ print *, ‘31’
caso 4,6,9,11: case (4,6,9,11)
escribir ‘30’ print *, ‘30’
caso 2: case (2)
escribir ‘28’ print *, ‘28’
otro caso: case default
escribir ‘Mes incorrecto’ print *, ‘Mes incorrecto’
fin según end select
ESTRUTURAS REPETITIVA
La estructura repetitiva o iterativa permite, como su propio nombre indica,
repetir una acción (o grupo de acciones); dicha repetición puede llevarse a cabo un
número prefijado de veces o depender de la evaluación de una expresión lógica.
Existen tres tipos de estructuras repetitivas: desde-hasta, mientras y repetir-hasta
Estructura desde-hasta
Esta estructura permite repetir la ejecución de una acción o de un grupo de
acciones un número determinado de veces; la sintaxis es la siguiente:
desde índice ← inicio hasta fin [con paso valor] hacer do indice=inicio, fin, paso
acción acción
fin desde end do
El funcionamiento de la estructura es el siguiente:
En primer lugar, se asigna a la variable índice el valor de inicio
El bucle se ejecuta mientras índice no alcance el valor de fin.
En cada iteración el valor de índice es incrementado según el paso indicado
y se ejecuta la acción o grupo de acciones encerrados en el bucle.
En caso de que no se indique ningún paso el que se empleará sera +1
A continuación se muestran algunos ejemplos:
desde n ← 1 hasta 10 hacer do n = 1, 10
escribir n print *, n
fin desde end do
El bucle anterior imprime por pantalla los números del 1 al 10
desde n ← 10 hasta 1 hacer do n=10, 1
escribir n print *, n
fin desde end do
El bucle anterior no se ejecuta nunca puesto que no se puede alcanzar 1
comenzando en 10 y avanzando conpaso +1; ¡atención! Un error frecuente es pensar
que el bucle se ejecuta de forma infinita
Fuente:
[Link]
Fuente:
[Link]