5 - Comprobando condiciones (2: Segun)
Versión en video (3:28 min):
Pseudocódigo
5 - Comprobando condiciones (2: Segun)
Es frecuente tener que comprobar más de una condición a la vez, o bien varias condiciones consecutivas. En concreto, un caso especialmente habitual es el de que una variable pueda tomar un valor de entre varios. Por ejemplo, en el sistema de notas escolares español clásico, ciertas notas numéricas tienen "nombres" asociados: un 5 es un aprobado, un 9 y un 10 son sobresaliente, etc. Si queremos hacer un programa que convierta de la nota numérica a su equivalente escrito, podríamos emplear varias órdenes "SI", una tras la otra. Pero en muchos lenguajes de programación (y por tanto, también en muchas variantes de pseudocódigo) existe una alternativa más compacta y más legible: la orden "SEGUN". Esta orden permite hacer unas cosas u otras según el valor que tome una variable. Su uso sería así:
Segun variable Hacer
valor1: pasos_a_dar_si_es_el_valor1
valor2: pasos_a_dar_si_es_el_valor2
valor3: pasos_a_dar_si_es_el_valor3
De Otro Modo:
pasos_a_dar_si_es_otro_valor
FinSegun
El bloque "De Otro Modo" es opcional: si detallamos todos los valores posibles, no sería necesario utilizarlo.
El número de valores que podemos probar es indefinido: no tiene por qué ser 3, sino que pueden ser menos casos o muchos más.
Según la variante de pseudocódigo (o el lenguaje de programación) que empleemos, puede haber restricciones en el tipo de datos que es aceptable. Por ejemplo, en el caso de PseInt, la variable tiene que tener un valor numérico, no puede ser un texto.
Al igual que ocurría con la orden SI, existe un símbolo que podemos usar en los diagramas de flujo para ayudarmos a planificar nuestro programa (aunque este símbolo está menos extendido que el de SI):
Así, si en PseInt hacemos clic en el icono del panel derecho que representa la condición SEGUN, aparece un esqueleto de programa casi completo, para que hagamos los cambios que nos interesen:
Sólo tenemos que escribir la condición que realmente nos interesa, y la serie de pasos a dar si se cumple y si no se cumple, de modo que nuestro programa podría quedar así:
Algoritmo EjemploCasos
Escribir "Introduzca la nota"
Leer nota
Segun nota Hacer
10:
Escribir "Ha obtenido un sobresaliente alto"
9:
Escribir "Ha obtenido un sobresaliente bajo"
8:
Escribir "Ha obtenido un notable alto"
7:
Escribir "Ha obtenido un notable bajo"
6:
Escribir "Ha obtenido un aprobado alto"
5:
Escribir "Ha obtenido un aprobado"
De Otro Modo:
Escribir "Ha suspendido"
FinSegun
FinAlgoritmo
Su resultado sería éste:
Pero no siempre habrá que comprobar condiciones una única vez. Es muy frecuente que haya que hacerlo de forma repetitiva. Por ejemplo, "pedir una contraseña al usuario hasta que sea la correcta", o aún más cercano al mundo real, "pedir una contraseña al usuario hasta que sea la correcta o agote sus intentos". De eso hablaremos en la próxima entrega.
Ejercicio de repaso propuesto 5.1: Haz un programa que pida un número al usuario un número de día de la semana (del 1 al 7) y escriba el nombre de ese día (por ejemplo, "martes" para el día 2). Debes emplear la orden SEGUN.
Ejercicio de repaso propuesto 5.2: Crea una variante del ejercicio 5.1, en la que emplees varios SI-ENTONCES en vez de SEGUN.
Ejercicio de repaso propuesto 5.3: Crea un programa que pida al usuario un número de mes (por ejemplo, el 4) y escriba el nombre del mes correspondiente (por ejemplo, "abril"). Debes usar la orden SEGUN.
Ejercicio de repaso propuesto 5.4: Crea una variante del ejercicio 5.3, en la que emplees varios SI-ENTONCES en vez de SEGUN.