ESTRUCTURAS SELECTIVAS MULTIPLES
Con frecuencia existen más de dos alternativas posibles (por ejemplo: en una ecuación de segundo grado el discriminante puede ser negativo, nulo o positivo). Este problema se puede resolver utilizando estructuras alternativas simples o dobles anidadas o en cascada, pero este tipo de solución añade complejidad al algoritmo y hace difícil la lectura del código fuente.
La estructura de selección múltiple ofrece una solución más simple y compacta. Para esta estructura se evalúa una expresión que puede tomar n valores distintos (1, 2, 3, ..., n) A cada valor de la expresión corresponde una instrucción (o serie de instrucciones) diferente, lo que significa que el flujo seguirá un camino distinto entre los n posibles caminos en dependencia del valor de laexpresión de control.
La representación gráfica de este tipo de estructura de selección sería:
En español, el pseudocódigo que representa a la estructura de selección múltiple es:
Según_sea hacer
caso 1: acción 1
caso 2: acción 2
.
.
.
caso n: acción n
si_no
acción x
fin_según
Por ejemplo, elpseudocódigo para una aplicación que escribe los nombres de los días de la semana en función de una variable (DIA) introducida por el teclado sería:
Var
Entero: DIA
Inicio
Leer(DIA)
Según_sea (DIA)
Caso 1: escribir(“Lunes”)
Caso 2: escribir(“Martes)
Caso 3: escribir(“Miércoles”)
Caso 4: escribir(“Jueves”)
Caso 5: escribir(“Viernes”)
Caso 6: escribir(“Sabado”) Caso 7: escribir(“Domingo”)
si_no
escribir(“Error”)
fin_según
fin
10.2 VB Select Case
En VB la selección múltiple se implementa mediante la estructura Select Case, cuya sintaxis general es:
Select Case
Case 1
Bloque 1 de instrucciones
Case 2
Bloque 2 de instrucciones
Case 3
Bloque 3de instrucciones
.
.
.
Case n
Bloque n de instrucciones
Case Else
Bloque x de instrucciones
End Select
Note que la última opción (Case Else) cubre la posibilidad de que la expresión no tome ninguno de los n valores previstos.
10.3 Ejemplo
Estudie cuidadosamente el ejemplo de abajo. Fije elintervalo del Timer en 2000. Escriba los comentarios (documentación interna) apropiados en cada caso. ¿Porque no se usa la opción Case Else en la estructura Select Case?
Forma
GUI
Código Fuente
------------------------------------------------------------
General
Dim n As Integer
Dim s As Integer
------------------------------------------------------------
Private Sub cmdStart_Click() Timer1.Enabled = True
End Sub
------------------------------------------------------------
Private Sub cmdStop_Click()
Timer1.Enabled = False
n = 0
shpRojo.BackColor = &H0&
shpAmarillo.BackColor = &H0&
shpVerde.BackColor = &H0&
End Sub
------------------------------------------------------------
Private Sub Timer1_Timer()
n = n + 1
s = n Mod 3
Select Case s Case 1
shpRojo.BackColor = &HFF&
shpAmarillo.BackColor = &H0&
shpVerde.BackColor = &H0&
Case 2
shpRojo.BackColor = &H0&
shpAmarillo.BackColor = &HFFFF&
shpVerde.BackColor = &H0&
Case 0
shpRojo.BackColor = &H0&
shpAmarillo.BackColor = &H0&
shpVerde.BackColor = &HC000&
End Select
End Sub------------------------------------------------------------
10.4 VB Option Buttons
En VB se utiliza con frecuencia controles tipo option button para implementar la estructura de selección múltiple.
La figura de abajo muestra como luce el este control
Un option button toma el valor (propiedad value) verdadero cuando el usuario lo selecciona haciendo clic sobre el. Cuando un option button tiene valor verdadero aparece un punto...
Regístrate para leer el documento completo.