Las estructuras de selección son estructuras de control utilizadas para la toma decisiones dentro de un programa. A estas estructuras se conocen también como estructuras selectivas o estructuras de decisión y son las siguientes:
3.2 Estructura de Selección Simple SI
La estructura de selección simple permite ejecutar una acción o un grupo de acciones sólo si se cumple una determinada condición. Así, en el gráfico 3.1, si la condición es verdadera se ejecuta la acción
acciona; en caso contrario, no se hace nada.
Diagrama de Flujo
 | Pseudocódigo (acción simple)
SI( condicion )
acciona
Pseudocódigo (acción compuesta)
SI( condicion ){
acciona1
acciona2
.
.
.
accionan
}
|
Figura 3.1 Estructura de Selección Simple
Por ejemplo, si se desea cambiar el signo de un número únicamente en caso que sea negativo, podemos escribir:
SI( numero < 0 )
numero = -1 * numero
Si el número no es negativo, simplemente esta estructura se pasaría por alto y se continuaría en la siguiente instrucción después del SI.
3.3 Estructura de Selección Doble SI - SINO
La estructura de selección doble permite seleccionar una ruta de dos rutas posibles en base a la verdad o falsedad de una condición. Así, en la Figura 3.2, si la condición es verdadera, se ejecuta la acción A; en caso contrario, se ejecuta la acción B.
En la Figura 3.2 se muestra el diagrama de flujo y el pseudocódigo de la estructura de selección doble.
Diagrama de Flujo | Pseudocódigo (acción simple)
SI( condicion )
acciona
SINO
accionb
Pseudocódigo (acción compuesta)
SI( condicion ){
acciona1
acciona2
.
.
.
accionan
}
SINO{ accionb1
accionb2
.
.
.
accionbn
}
|
Figura 3.2 Estructura de Selección Doble
Por ejemplo, la siguiente estructura de selección doble determina si una persona es mayor o menor de edad:
SI( edad >= 18 )
estado = "Mayor de edad"
SINO
estado = "Menor de edad"
Esto imprime "Mayor de edad" si la persona tiene 18 años ó más e imprime "Menor de edad" si la persona tiene menos de 18 años. En cualquiera de los casos, después de efectuar la impresión, se ejecutará la primera instrucción que sigue a la estructura
SI...SINO.
Estructura de Selección Doble en Cascada SI-SINO-SI
La estructura de selección doble en cascada esta formada por varias estructuras de selección doble SI-SINO puestas una a continuación de otra de forma que a un SI-SINO le sigue otro SI-SINO.
En la estructura de selección doble en cascada, las condiciones se evalúan en orden descendente, pasando de una condición a otra si la condición anterior resulta falsa. En el momento que se encuentra una condición verdadera, se efectúa la acción correspondiente a dicha condición y se corta el resto de la estructura. Si todas las condiciones resultan falsas, se efectúa la acción correspondiente al último SINO, que se considera como la acción por defecto.
En la Figura 3.3 se muestra el diagrama de flujo y el pseudocódigo de la estructura de selección doble en cascada.
Diagrama de Flujo | Pseudocódigo ( Forma 1 )
SI( condicion1 )
accion1
SINO
SI( condicion2 )
accion2
SINO
SI( condicion3 )
accion3
. . . SINO acciondefecto
Pseudocódigo ( Forma 2 )
SI( condicion1 )
accion1
SINO SI( condicion2 )
accion2
SINO SI( condicion3 )
accion3
. . . SINO acciondefecto
|
Figura 3.3 Estructura de Selección Doble en Cascada
Por ejemplo, la siguiente estructura de selección doble en cascada determina el signo de un número entre positivo, negativo o cero:
SI( n > 0 )
signo = "Positivo"
SINO
SI( n < 0 )
signo = "Negativo"
SINO
signo = "Cero"
Usando el otro formato tendríamos:
SI( n > 0 )
signo = "Positivo"
SINO SI( n < 0 )
signo = "Negativo"
SINO
signo = "Cero"
3.5 Estructura de Selección Múltiple SEGUN
La estructura de selección múltiple
SEGUN permite elegir una ruta de entre varias rutas posibles, en base al valor de una variable que actúa como
selector. La estructura compara el valor del
selectorcon las constantes c1, c2, ..., cn en orden descendente. En el momento en que se encuentre una coincidencia, se ejecuta la acción correspondiente a dicha constante y se abandona la estructura.
En la Figura 3.4 se muestra el diagrama de flujo y el pseudocódigo de la estructura de selección múltiple.
Diagrama de Flujo | Pseudocódigo
SEGUN( selector ){
CASO c1 : accion1
CASO c2 : accion2
CASO c3 : accion3
. . .
CASO cn : accionn
DEFECTO : acciondefecto
}
|
Figura 3.4 Estructura de Selección Múltiple
Por ejemplo, la siguiente estructura de selección múltiple determina el nombre de la estación del año conociendo el número de la estación (1 para Primavera, 2 para Verano, 3 para Otoño y 4 para Invierno) :
SEGUN(numeroEstacion){
CASO 1 : nombreEstacion = "Primavera"
CASO 2 : nombreEstacion = "Verano"
CASO 3 : nombreEstacion = "Otoño"
DEFECTO : nombreEstacion = "Invierno"