Вы находитесь на странице: 1из 4

Ingeniería de Sistemas

Fundamentos de Lógica

ESTRUCTURA DE SELECCIÓN MULTIPLE

Mientras que las Estructuras de Selección Anidadas sirven para el mecanismo general de toma de decisiones, las
Estructuras de Selección Múltiple proporcionan una manera muy práctica para seleccionar entre un conjunto de
opciones predefinidas.

seleccionar<opción> hacer

caso <constante_1>:
<bloque instrucciones 1>
caso <constante_2>:
<bloque instrucciones 2>

...............

caso <constante_n>:
<bloque instrucciones n>
caso <por defecto>:
<bloque instrucciones>
fin_seleccionar

Las Estructuras de Selección Múltiple operan de la siguiente manera:

 Primero se evalúa la expresión de cambio.


 El valor resultante se compara contra cada etiqueta case constante de valor entero.
 En una estructura de Selección Múltiple, todas las etiquetas Caso deben ser distintas, el control se
transfiere a la que coincide, o a por defecto, si ninguna coincide.
 No hay una coincidencia secuencial, caso por caso, al momento de la ejecución.
 El control se transfiere directamente.
 Si la etiqueta de caso opcional por defecto no es dada y si nada coincide, la ejecución de la selección
múltiple se completa con éxito.
 El siguiente control se transfiere a una etiqueta de caso, las instrucciones en la etiqueta seleccionada y
todas las instrucciones bajo otras etiquetas de caso después de ésta, se ejecutarán en secuencia. A este
comportamiento se le llama caída total y hace que la estructura de Selección Múltiple sea muy diferente de
una estructura de Selección Anidada.
 En cada etiqueta de caso puede haber cero, una o más instrucciones. Esto permite que varias etiquetas de
caso precedan a un grupo de instrucciones, lo que lo hace conveniente para ciertas situaciones.
 También fin_caso puede utilizarse para salir de la estructura de Selección Múltiple. A menudo es el último
elemento de cada Caso para evitar caídas completas. Al evitar éstas, pierde importancia el orden en que se
dan las etiquetas de caso (pero se sugiere ser ordenado).

Para evitar toda clase de confusiones se recomienda la Estructura de Selección Múltiple de la siguiente forma:

seleccionar < opción> hacer

caso <constante_1>:
<bloque instrucciones 1>
Ingeniería de Sistemas
Fundamentos de Lógica

fin_caso
caso <constante_2>:
<bloque instrucciones 2>
fin_caso
...............

caso <constante_n>:
<bloque instrucciones n>
fin_caso
caso <por defecto>:
<bloque instrucciones>
fin_caso

fin_seleccionar

Ejemplo de Selección múltiple.

Una persona selecciona una transacción en un cajero automático

ANALISIS DEL PROBLEMA

Objetos Desconocidos Que transacción desea realizar el usuario

Objetos Conocidos Los números correspondientes a las transacciones disponibles en el cajero.

Condiciones El cajero debe ejecutar la transacción seleccionada por el usuario.

ESPECIFICACIÓN

n E Enteros entre 1 y 5, (n es el número ingresado por el usuario para


Entradas
seleccionar la transacción).

Salidas Ejecución de una Transacción .

El numero n seleccionado por el usuario debe corresponder a la transacción


Condiciones
seleccionada por el usuario

DISEÑO

Primera División:
Ingeniería de Sistemas
Fundamentos de Lógica

Inicio
PASO 1. Leer el número.
PASO 2. Determinar la transacción y Ejecutarla.
Fin

Segunda División:

Inicio
Paso 1. Leer el número.
Paso 2. Determinar la transacción
Paso 2.1. si es 1
Paso 2.1.1. Ejecutar la transacción 1
Paso 2.1.2. Salir
Paso 2.2. si es 2
Paso 2.2.1. Ejecutar la transacción 2
Paso 2.2.2. Salir
Paso 2.3. si es 3
Paso 2.3.1. Ejecutar la transacción 3
Paso 2.3.2. Salir
Paso 2.4. si es 4
Paso 2.4.1. Ejecutar la transacción 4
Paso 2.4.2. Salir
Paso 2.5. si es 5
Paso 2.5.1. Ejecutar la transacción 5
Paso 2.5.2. Salir
Paso 2.5. si no esta en el rango
Paso 2.5.1. Salir
Fin

División Final:

n: entero /* se define la variable para la selección del usuario*/


leer (n) /* lee el número de la transacción seleccionada*/

seleccionar n hacer

caso 1:
<consignación>
fin_caso
caso 2:
<retiro>
fin_caso
caso 3:
<pago de servicios>
fin_caso
caso 4:
<cambio de clave>
fin_caso
caso 5:
Ingeniería de Sistemas
Fundamentos de Lógica

<consulta de saldo>
fin_caso
fin_seleccionar

Ejercicio: Desarrollar un algoritmo que al introducir el número del día de


la semana, imprima el nombre del día correspondiente.