|
CarlosPes.com
> Curso
de Diseño de Algoritmos
> Alternativa Múltiple en
Pseudocódigo |
|
Instrucción
Alternativa Múltiple en
Pseudocódigo
|
|
|
|
|
¿Qué es
una instrucción de control alternativa múltiple?
|
|
Una
instrucción
alternativa múltiple permite seleccionar, por
medio de una expresión, el siguiente bloque de instrucciones a ejecutar de entre varios posibles.
En pseudocódigo, para escribir una alternativa
múltiple se utiliza la sintaxis: |
|
segun_sea (
<expresión> )
<lista_de_valores_1> :
<bloque_de_instrucciones_1>
<lista_de_valores_2> :
<bloque_de_instrucciones_2>
...
<lista_de_valores_n> :
<bloque_de_instrucciones_n>
[ sino : <bloque_de_instrucciones_n+1> ]
fin_segun_sea |
|
|
El
resultado de evaluar la <expresión> debe ser
un valor perteneciente a un tipo de dato finito y ordenado, es decir,
entero, lógico, carácter, enumerado o subrango.
Dependiendo del valor obtenido al evaluar la
<expresión>, se ejecutará un bloque
de instrucciones u otro. En las listas de valores se deben escribir los
valores que determinan el bloque de instrucciones a ejecutar, teniendo
en cuenta que, un valor sólo puede aparecer en una lista de
valores.
Opcionalmente, se puede escribir un
<bloque_de_instrucciones_n+1> después de sino :. Este bloque de instrucciones se
ejecutará en el caso de
que el valor obtenido al evaluar la
<expresión>, no se encuentre en ninguna de las
listas de valores especificadas.
Ejemplo 1: Se quiere diseñar el
algoritmo de un programa que:
1º) Pida por teclado el número (dato entero) de un
día de la semana.
2º) Muestre por pantalla el nombre (dato cadena)
correspondiente a dicho día.
Nota: Si el número de día introducido es menor
que 1 ó mayor que 7, se mostrará el mensaje:
"ERROR: Día incorrecto.".
En pantalla: |
|
|
|
Algoritmo
propuesto: |
|
algoritmo Dia_de_la_semana
variables
entero dia
inicio
escribir( "Introduzca día de la semana:
" )
leer( dia )
segun_sea ( dia )
1 : escribir( "Lunes" )
2 : escribir( "Martes" )
3 : escribir( "Miércoles" )
4 : escribir( "Jueves" )
5 : escribir( "Viernes" )
6 : escribir( "Sábado" )
7 : escribir( "Domingo" )
sino : escribir(
"ERROR: Día incorrecto." )
fin_segun_sea
fin |
|
|
Cuando
en una lista de valores de una alternativa múltiple aparece
más de un valor, estos se escriben separados por el
carácter coma (,). Estúdiese el siguiente ejemplo.
Ejemplo 2: En la siguiente tabla se muestran las
categorías
a las que pertenecen los signos del zodíaco: |
|
|
|
Se
quiere diseñar el algoritmo de un programa que:
1º) Muestre el listado de los signos del zodíaco,
con sus números asociados.
2º) Pida por teclado un número (dato entero)
asociado a un signo del zodíaco.
3º) Muestre la categoría a la que pertenece el
signo del zodíaco seleccionado.
Nota: Si el número introducido por el usuario, no
está asociado a ningún signo del
zodíaco, se mostrará el mensaje: "ERROR:
<número> no está asociado a
ningún signo.".
En pantalla: |
|
|
|
|
|
Una
posible solución es: |
|
algoritmo Signo_del_zodiaco
variables
entero numero
inicio
escribir( "Listado de signos del
zodíaco:" )
escribir( "1. Aries" )
escribir( "2. Tauro" )
escribir( "3. Géminis" )
escribir( "4. Cáncer" )
escribir( "5. Leo" )
escribir( "6. Virgo" )
escribir( "7. Libra" )
escribir( "8. Escorpio" )
escribir( "9. Sagitario" )
escribir( "10. Capricornio" )
escribir( "11. Acuario" )
escribir( "12. Piscis" )
escribir( "Introduzca número de signo:
" )
leer( numero )
segun_sea ( numero )
1, 5, 9 :
escribir( "Es un signo de Fuego." )
2, 6, 10 : escribir(
"Es un signo de Tierra." )
3, 7, 11 : escribir(
"Es un signo de Aire." )
4, 8, 12 : escribir(
"Es un signo de Agua." )
sino : escribir( "ERROR: ", numero,
" no está asociado a ningún signo." )
fin_segun_sea
fin |
|
|
Otra
solución es: |
|
algoritmo Signo_del_zodiaco
variables
entero numero
cadena categoria
inicio
escribir( "Listado de signos del
zodíaco:" )
escribir( "1. Aries" )
escribir( "2. Tauro" )
escribir( "3. Géminis" )
escribir( "4. Cáncer" )
escribir( "5. Leo" )
escribir( "6. Virgo" )
escribir( "7. Libra" )
escribir( "8. Escorpio" )
escribir( "9. Sagitario" )
escribir( "10. Capricornio" )
escribir( "11. Acuario" )
escribir( "12. Piscis" )
escribir( "Introduzca número de signo:
" )
leer( numero )
segun_sea ( numero mod 4 )
1 :
categoria ← "Fuego"
2 :
categoria ← "Tierra"
3 :
categoria ← "Aire"
0 :
categoria ← "Agua"
fin_segun_sea
si ( numero >= 1 y numero <= 12 )
escribir( "Es un
signo de ", categoria, "." )
sino
escribir( "ERROR: ",
numero,
" no está
asociado a ningún signo." )
fin_si
fin |
|
|
En
esta segunda solución existen las siguientes diferencias
importantes con respecto a la solución anterior:
- En
el algoritmo se utiliza una alternativa doble, además de una
alternativa múltiple.
- En
la alternativa múltiple no se escribe el
<bloque_de_instrucciones_n+1>.
- La
expresión de la alternativa múltiple es diferente.
- La
expresión "Es un signo de " sólo se escribe una
vez.
- Se
ha utilizado una variable más: categoria.
|
|