2. ESTRUCTURAS DE CONTROL
En lenguajes de programación las estructuras de control permiten
modificar el flujo de ejecución de las instrucciones de
un programa. Todas las estructuras de control tienen un único
punto de entrada.
ESTRUCTURA DE CONTROL...
Estructuras de control en el lenguaje de C y C++
DE SELECCIÓN. Las estructuras de control de selección, ejecutan
un bloque de instrucciones u otro, o saltan a un subprograma o
subrutina según se cumpla o no una condición.
ESTRUCTURAS ANIDADAS...
Las estructuras de control básicas pueden anidarse, ponerse una
dentro de otra.
3. Introducción
Las estructuras de control, son instrucciones que permiten romper 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.
4. Como se observa en el lado derecho de la figura, los programas son secuenciales,
se ejecutan todas las instrucciones una a continuación de otra; mientras que al
utilizar estructuras de control, - lado izquierdo de la figura -, ya no necesariamente
se ejecutan todas las instrucciones, sino únicamente las instrucciones de la ruta
seleccionada de acuerdo a una condición evaluada.
Existen 2 tipos de esctructuras de control:
1. Selectivas
2. Repetitivas
Las primeras permiten seleccionar un camino a ejecutarse entre dos o más
opciones "por una sola vez"; y las segundas, permiten ejecutar un conjunto de
instrucciones "varias veces" mientras se cumpla una condición.
Al escribir una estructura de control, se deberá tener presente que una correcta
tabulación, permitirá que el programa sea más legible y fácil de comprender. Los
lenguajes de programación, realizan esta tabulación de forma automática, siempre
y cuando se escriban correctamente el inicio y final de cada estructura.
5. Componentes
Asignación
La asignación consiste, en el paso de valores o resultadosa una zona de la memoria. Dicha zona será reconocida con el
nombre de la variable que recibe el valor. La asignaciónse puede clasificarde la siguienteforma:
• Simples: Consiste en pasar un valor constate a una variable (a=15)
• Contador: Consiste en usarlacomo un verificador del número de veces que se realizaun proceso (a=a+1)
• Acumulador: Consiste en usarla como un sumadoren un proceso(a=a+b )
• De trabajo: Donde puede recibir el resultadode una operaciónmatemática que involucre muchas variables
(a=c+b*2/4).
Lectura
La lectura consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor. Esta operación se representaen
un pseudocódigocomo sigue:
Leer a, b
Donde “a” y “b” son las variables que recibirán los valores
Escritura
Consiste en mandar por un dispositivode salida (p.ej. monitor o impresora)un resultadoo mensaje. Este procesose
representaen un pseudocodigocomo sigue:
Escribe “El resultadoes:”, R
Donde “El resultadoes:” es un mensaje que se desea aparezcay R es una variable que contiene un valor.
6. Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos representados en
Pseudocódigo y en diagramas de flujos:
tengo un teléfono y necesito llamar a alguien pero no sé como hacerlo.
7. La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en
secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la
siguiente y así sucesivamente hasta el fin del proceso.
En Pseudocódigo una Estructura Secuencial se representa de la siguiente forma:
8. Estructuras de Control. Introducción
Hasta ahora algoritmos han consistido en simples secuencias de
instrucciones
Existen tareas más complejas que no pueden ser resueltas así
(repetir una misma acción, realizar acciones diferentes en
función del valor de una expresión, etc.)
Para resolver esto existen las estructuras de control:
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. Existen 3 tipos fundamentales de
estructuras de control:
Secuencial. Alternativa. Repetitiva.
2
9. Estructuras de Control. Secuencial
Punto de entrada La más sencilla, simplemente indica una secuencia de
acciones a ser ejecutadas de forma consecutiva. La
composición secuencial no es conmutativa. leer
aread *, a leer bread *, b c a + bc = a + b
escribir cprint *, c
Existe una notación alternativa, separando las
sentencias mediante el carácter ;
leer a; leer bread *, a; read *, b c a + b;
escribir cc = a + b; print *, c
Punto de salida
3
10.
11. Estructuras de Control. Alternativa doble
Similar a la anterior, ejecuta una acción (o grupo de acciones) si la
expresión es cierta y otra acción (o grupo) si es falsa.
si expresión lógica entoncesif (expresión lógica)
then accionesacciones
si noelse Punto de entrada
accionesacciones
fin_siend if Ejemplo:
si radio>0 entoncesif (radio>0) then
longitud
2·pi·radiolongitud=2*pi*radio
si noelse
escribir ‘Error’print *, ‘Error’
fin_siend if
12.
13. Estructuras de Control. Alternativa múltiple (ii)
Ejemplo:
segun messelect 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únend select
7
14. Permite repetir la ejecución de una acción o de un grupo
de acciones un número determinado de veces.
desde indice inicio hasta fin [con paso valor] hacer
acción
fin desde
do indice=inicio, fin, paso acción
end do El funcionamiento de la estructura es
el siguiente:
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 iteración el valor de indice 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á será
+1.
8
15. Estructuras de Control. Estructura desde-hasta
(ii) Ejemplos:
desde n 1 hasta 10 hacer desde n 10 hasta 1 hacer escribir
n escribir n
fin desde fin desde do n=1, 10 do
n=10, 1 print *, n print *, n
end do end do
desde n 10 hasta 1 con paso –2 hacer
escribir n
fin desde do
n=10, 1, -2
print *, n
end do
16.
17. Estructuras de Control. Estructura repetir-hasta
Repite una acción o grupo de acciones hasta que una expresión
lógica sea cierta.
Esta estructura no existe en FORTRAN pero sí en
otros lenguajes de programación. Punto de entrada
repetir
acción
hasta expresión lógica
La expresión lógica no se evalúa hasta el final
con lo cual el bucle se ejecuta al menos
una vez por contraposición a la
estructura anterior que podía no
ejecutarse ninguna. Punto de salida
18. Estructuras de Control.
Resumen (i)
Las estructuras de control permiten alterar el flujo secuencial de los 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.
Existen tres tipos fundamentales de estructuras de control:
Secuencial.
Alternativa.
Repetitiva.
La estructura secuencial es una lista consecutiva de acciones donde el orden de aparición indica el
orden de ejecución.
La estructura alternativa se presenta en tres formas:
Simple.
Doble.
Multialternativa.
La estructura alternativa simple permite evaluar una expresión lógica y ejecutar una acción si dicha
expresión es cierta.
19. Estructuras de Control.
Resumen (ii)
La estructura alternativa doble permite evaluar una expresión lógica y ejecutar
una acción si dicha expresión es cierta y otra acción si dicha expresión es falsa.
La estructura multialternativa consiste en una expresión selectora que puede
tomar n valores diferentes y ejecuta una acción diferente por cada posible valor
de la expresión selectora.
La estructura repetitiva se presenta en tres formas:
Estructura desde-hasta
Estructura mientras
Estructura repetir-hasta n
La estructura desde-hasta permite repetir la ejecución de una acción un número
determinado de veces. n La estructura mientras repite una acción mientras una
expresión lógica sea cierta; esta estructura puede ejecutarse 0 ó más veces.
La estructura repetir-hasta repite una acción hasta que una expresión lógica sea
cierta; esta estructura siempre se ejecuta 1 vez al menos y no existe en el
lenguaje FORTRAN aunque aparece en otros lenguajes de programación