147
Estructura caso o case
1. INTRODUCCIÓN
La estructura CASO o CASE es una estructura que sirve para seleccionar, entre muchas alternativas, una a la vez, por eso se considera como una estructura alternativa múltiple. Se evalúa el valor de la variable de selección o selector y dependiendo del valor asignado se escoge entre varios caminos sólo uno.
148 Gráficamente se representa así:
___
___ Indica que antes y/o después de la estructura pueden existir una o más instrucciones.
A, B, C, D = Representan las instrucciones o grupo de instrucciones que pueden existir por cada camino o etiqueta.
Dentro de este símbolo va la expresión o variable que determina o selecciona, dependiendo de su valor, el camino que debe tomar o seguir; a esta expresión se le denomina selector o variable de selección.
E1, E2, E3, E4 = Representan los caminos, opciones o etiquetas que el selector puede seguir, según el valor que haya tomado.
A cada camino o alternativa se le conoce también como etiqueta ya que lleva una marca que al encontrarla seguirá dicho camino.
El algoritmo para esta estructura tiene la siguiente forma: Inicio
___ ___
Según_sea Selector haga E1: ___ ___ ___ E2: ___ ___ ___ E3: ___ ___ ___ ___ ___ Fin_según_sea ___ ___ Fin_algoritmo
Una o más instrucciones.
150 Como es normal que al evaluar la expresión resulte un valor no
encontrado en ninguna de las etiquetas o caminos recorridos, existe una variante del diagrama anterior y que incluye una nueva opción, representada aquí por la instrucción X.
151 La instrucción X solo será ejecutada si el selector o expresión no encuentra una etiqueta o camino por donde seguir, o sea, no encuentra un camino que contenga el valor buscado y que por eso tiene que seguir la otra alternativa o sea el camino de Falso o de Si_no.
El algoritmo ahora se representará así:
Inicio ___ ___
Según_sea Selector haga E1: ___ ___ ___ E2: ___ ___ ___ E3: ___ ___ ___ ___ ___ Si_no ___ ___ Fin_según_sea ___ ___ Fin_algoritmo
Una o más instrucciones.
Otras etiquetas y sus instrucciones.
152 Ahora veamos el desarrollo de algunos ejercicios.
4. EJERCICIOS DESARROLLADOS
Ejercicio 1. Leer un caracter y determinar por medio de un mensaje si es un número entre 0 y 9 o una letra mayúscula o minúscula.
a. Análisis de la solución
Leyendo el enunciado podemos sacar como conclusión que necesitamos definir 3 etiquetas: una en donde se encuentren los números de 0 a 9, otra en donde aparezcan las letras minúsculas de la a la z y la última en donde se registren las letras mayúsculas de la A a la Z.
Además necesitamos definir la variable con la cual se leerá el caracter.
b. Definición de variables
153
c. Diagrama de flujo
d. Prueba de escritorio
154 Busca la letra M y la encuentra en la tercera etiqueta, por eso
imprime el anterior mensaje.
e. Algoritmo
Inicio
Lea CARACT
Según_sea CARACT haga ‘0’ .. ‘9’ : Imprima ‘Es un dígito’ ‘a’ .. ‘z’ : Imprima ‘Es una minúscula’ ‘A’ .. ‘Z’: Imprima ‘Es una mayúscula’ Fin_según_sea
156 El algoritmo para este problema queda así:
Inicio
Lea CARACT
Según_sea CARACT haga ‘0’ .. ‘9’ : Imprima ‘Es un dígito’ ‘a’ .. ‘z’ : Imprima ‘Es una minúscula’ ‘A’ .. ‘Z’ : Imprima ‘Es una mayúscula’ Si_no
Imprima ‘Caracter desconocido’ Fin_según_sea
157 Ejercicio 2. Mostrar en romano el equivalente de los números arábigos 5, 10, 50, 100.
a. Análisis de la solución
En cada etiqueta irá un número en arábigo y por allí se imprimirá un mensaje diciendo cuál es el correspondiente en romano; el número en arábigo servirá de etiqueta.
Se tendrá que definir una variable de selección (selector) con la cual se lea el número y dependiendo del valor asignado tome un camino u otro.
b. Definición de variables
158
c. Diagrama de flujo
159
e. Algoritmo
Inicio
Lea NUMERO
Según_sea NUMERO haga
5 : Imprima ‘El número 5 en romano es V’ 10 : Imprima ‘El número 10 en romano es X’ 50 : Imprima ‘El número 50 en romano es L’ 100: Imprima ‘El número 100 en romano es C’ Si_no
Imprima ‘Es otro número o caracter’ Fin_según_sea
Fin_algoritmo
Ejercicio 3. Desarrollar el siguiente ejercicio: realizar las cuatro operaciones aritméticas básicas leyendo dos valores para cada operación, guardando el resultado en una variable e imprimiendo posteriormente su resultado así: por la etiqueta 1 realizar una suma, por la 2 hacer una resta, por la 3 una multiplicación y por la 4 una división.
a. Análisis de la solución
Ya nos sugirieron el nombre y tipo de las etiquetas, ellas son: la 1, la 2, la 3 y la 4 y sabemos que son de tipo entero.
Debemos definir dos variables para leer cada uno de los valores que necesitamos para hacer las operaciones, además una para guardar el resultado de la operación.
160
b. Definición de variables
VALOR = Sirve para leer el valor que determina la operación que se tiene que realizar.
M1 = Sirve para leer el primer valor.
M2 = Sirve para leer el segundo valor.
R = Sirve para guardar el resultado de la operación que se efectúe.
161
d. Prueba de escritorio
Si cambiamos el valor de la variable VALOR se irá por otro camino así:
e. Algoritmo
Inicio
Lea VALOR Lea M1, M2
Según_sea VALOR haga 1: R = M1 + M2
Imprima ‘El resultado es:’, R 2: R = M1 - M2
Imprima ‘El resultado es:’, R 3: R = M1 * M2
Imprima ‘El resultado es:’, R 4: R = M1 / M2
Imprima ‘El resultado es:’, R Si_no
Imprima ‘Operación no autorizada’ Fin_según_sea
162 Ejercicio 4. Dado un número y el valor de la etiqueta tener en
cuenta lo siguiente: la primera etiqueta debe estar formada por los 5 primeros números impares y por allí calcular e imprimir el factorial del número N o sea de cualquier número cada vez que se ejecute; la segunda etiqueta debe contener los 5 primeros números pares y por dicha etiqueta generar e imprimir los N primeros múltiplos de 3; si el número leído no aparece en ninguna de las etiquetas imprimir un mensaje indicando la anomalía.
a. Análisis de la solución
Tenemos que asignarle a las etiquetas números enteros pares o impares según lo enunciado anteriormente, además por la primera etiqueta se debe hacer un pequeño programa o pseudo-programa con el cual se calcule el factorial del numero N o sea que sirva para el cálculo de cualquier factorial, recordando que por ejemplo el factorial del número 5 es igual a 1*2*3*4*5 dando como resultado 120. Para calcular el factorial es necesario que una variable comience en 1 y otra vaya aumentando su valor progresivamente hasta llegar a N, pudiendo calcular así el factorial del valor pedido.
163 valor de la variable N. Por lo tanto será necesario utilizar una variable que vaya incrementando su valor en 3 cada vez.
Siguiendo el orden veamos la definición de las variables.
b. Definición de variables
Variables comunes a las dos primeras etiquetas:
PARIMP = Sirve para leer el valor de la etiqueta que puede ser par o impar.
N = Sirve para leer y determinar los N primeros múltiplos de 3 y además para calcular el factorial del número que esta variable indique.
Para la primera etiqueta se deben definir además las siguientes variables:
FACT = Sirve para calcular el factorial del número pedido.
C = Sirve para generar los números de 1 a N.
Para la segunda etiqueta es necesario definir además las variables que aparecen a continuación:
R = Sirve para contar los múltiplos de 3 que se deben generar.
164
165
d. Prueba de escritorio
Ahora si el valor de la etiqueta fue un número par, el apuntador se irá por la segunda etiqueta y calculara los múltiplos de 3 hasta el número de múltiplos que indique N, así:
166 Si el número asignado no se encuentra en ninguna de las dos
etiquetas tomará el otro camino alternativo (Si_no) e imprimirá el mensaje asignado.
e. Algoritmo
Inicio Lea N
Lea PARIMP
Según_sea PARIMP haga 1, 3, 5, 7, 9: FACT = 1
Para C = 1 hasta N haga FACT = FACT * C Fin_para
Imprima ‘El factorial del número 5 es:’, FACT 2, 4, 6, 8, 10: T = 0
Para R = 1 hasta N haga T = T + 3
Fin_para Si_no
Imprima ‘Número no encontrado:’ Fin_según_sea
167 5. EJERCICIOS PROPUESTOS
Ejercicio 1. Según sea el caso hacer lo siguiente:
• En la primera etiqueta escribir las vocales en mayúscula e imprimir un mensaje adecuado.
• En la segunda etiqueta escribir las vocales en minúscula e imprimir un mensaje adecuado.
• Si el caracter leído no fue ni una vocal en mayúscula ni una vocal en minúscula escribir un mensaje que diga: ‘Caracter no reconocido’.
Ejercicio 2. Asignar un número entero en forma secuencial a cada etiqueta y en cada una imprimir un mensaje indicando que día de la semana es.
Ejercicio 3. Según sea el caso hacer lo siguiente:
• Si la etiqueta es la letra N o n, leer e imprimir los nombres y apellidos de una persona.
• Si la etiqueta es D o d, leer e imprimir la dirección de una persona.
• Si la etiqueta es T o t, leer e imprimir un número telefónico.
• Si la etiqueta es E o e, leer e imprimir una edad.
168 Ejercicio 4. Resolver un problema de tal manera que por la primera
etiqueta se puedan generar e imprimir las tablas de multiplicar del 1 al 3 y cada una hasta el 5° valor; por la segunda etiqueta, calcular el factorial dándole la posibilidad de que sirva para cualquier número (o sea con N); por la tercera leer N números y calcular e imprimir su correspondiente cuadrado. Utilizar también el camino de Si_no.
Ejercicio 5. Convertir pulgadas a milímetros, yardas a metros y millas a kilómetros.
Ejercicio 6. Leyendo como datos de entrada la categoría y el sueldo de un trabajador, calcular e imprimir el aumento correspondiente, teniendo en cuenta los siguientes datos:
Imprimir la categoría del trabajador y el nuevo sueldo.
169 sabiendo que hay un determinado descuento según la marca del automóvil, así:
Ejercicio 8. El costo de las llamadas telefónicas internacionales depende de la zona geográfica en la que se encuentre el país destino y del número de minutos hablados; es necesario anotar que cada zona tiene una clave o código que la diferencia, así:
170 BIBLIOGRAFÍA