INTRODUCCION A LA PROGRAMACION

 

Lección 10: Estructura Selectiva Múltiple.

 

10.1 Alternativa Múltiple

10.2 VB Select Case

10.3 Ejemplo

10.4 VB Option Buttons

10.5 Ejercicios

 

10.1 Alternativa Múltiple

 

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 la expresió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 <expresión> 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, el pseudocó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

 

Arriba

 

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 <expresión>

            Case 1

                Bloque 1 de instrucciones

            Case 2

                Bloque 2 de instrucciones

            Case 3

                Bloque 3 de 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.

 

Arriba

 

10.3 Ejemplo

 

Estudie cuidadosamente el ejemplo de abajo. Fije el intervalo 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

------------------------------------------------------------

 

Arriba

 

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 dentro del círculo blanco.

 

 

Cuando existen varios option buttons en una forma, solo uno de ellos puede estar seleccionado.

 

 

Al seleccionarse otro option button, el que estaba previamente seleccionado cambia su valor a false.

 

 

El ejemplo de abajo ilustra como se pueden utilizar los option buttons para implementar una estructura de selección múltiple en VB.

 

GUI

 

 

Código Fuente

------------------------------------------------------------------

General

Dim Total As Currency

Dim Cantidad As Integer

Dim C As Integer

------------------------------------------------------------------

Private Sub cmdEnter_Click()

 

  If IsNumeric(txtCantidad.Text) = False Then

    Beep

    MsgBox "Entre la cantidad deseada", 16, "Error"

    txtCantidad.Text = ""

    txtCantidad.SetFocus

  End If

 

  Cantidad = Val(txtCantidad.Text)

 

  Select Case C

    Case 1

     Total = Cantidad * 75

    Case 2

     Total = Cantidad * 55

    Case 3

     Total = Cantidad * 30

  End Select

 

  If Total = 0 Then

    lblTotal.Caption = ""

  Else

    lblTotal.Caption = Str$(Total)

  End If

 

End Sub

------------------------------------------------------------------

Private Sub cmdReset_Click()

 

 C = 0

 Total = 0

 Cantidad = 0

 txtCantidad.Text = ""

 lblTotal.Caption = ""

 

End Sub

------------------------------------------------------------------

Private Sub OptCombo1_Click()

C = 1

End Sub

------------------------------------------------------------------

Private Sub OptCombo2_Click()

C = 2

End Sub

------------------------------------------------------------------

Private Sub OptCombo3_Click()

C = 3

End Sub

------------------------------------------------------------------

Arriba

 

10.5 Ejercicios

 

 

Arriba