ALGORITMO Y ESTRUCTURA DE DATOS II

 

TDE ES EI CB Formulario CF EM Ejemplo Salir

Estructura de Selección - ES

 

Hay ocasiones en las que un programa debe realizar distintas acciones dependiendo del valor de una condición. En estos casos, disponemos de 2 tipos de sentencias para realizar selecciones dependiendo del valor de una expresión o de una variable:

 

Sentencia         IF … THEN …    ELSE

 

La estructura general de esta sentencia es la siguiente:

 

If condición then

bloque de sentencias a realizar si la condición es cierta

Else

bloque de sentencias a realizar si la condición es falsa

End If

 

Supongamos que queremos crear un programa que nos diga si somos mayores o menores de edad. El código de dicho programa sería el siguiente:

 

If edad < 18 Then

print “menor de edad”

Else

print “mayor de edad”

End If

 

Se pueden colocar todas las sentencias de código que queramos en cada uno de los bloques de sentencias, siempre que cada sentencia vaya en una línea distinta. Si los bloques de sentencias están formados por una sola instrucción podemos utilizar la versión reducida que ocupa una sola línea:

 

If condición then sentencia else sentencia

 

Ejemplo:          If IsNumeric(número) then a = número else print “Error”

 

En el ejemplo anterior, si la variable número contiene un valor numérico, este es almacenado en la variable a; en caso contrario el programa imprimirá en pantalla el mensaje “Error”.

 

También podemos anidar varias sentencias If then Else cuando una de las 2 opciones iniciales contiene a su vez 2 bifurcaciones dependiendo del estado de otra condición:

 

If edad < 18 Then

print “menor de edad”

Else

If edad < 65 Then

print “adulto”

Else

print “tercera edad”

End If

End If

 

Este último ejemplo podría haberse escrito de otra forma utilizando la cláusula ElseIf:

 

If edad < 18 Then

print “menor de edad”

ElseIf edad < 65 Then

print “adulto”

Else

print “tercera edad”

End If

 

Podemos introducir tantas líneas ElseIf como queramos siempre antes del último Else, si es que lo necesitamos.

 

Para múltiples decisiones, normalmente más de 3, en las que dependiendo del valor de una variable queremos que se realice una acción distinta, no conviene utilizar la estructura If Then, sino que el código queda más claro y resulta más fácil de modificar utilizando la sentencia Select 

 

Estructura       SELECT CASE

 

Esta sentencia permite realizar operaciones diferentes dependiendo del valor de una variable. Su estructura general es la siguiente:

 

Select Case dato

Case valor1

bloque de sentencias

case valor2

bloque de sentencias

Case valor3

bloque de sentencias

Case Else

bloque de sentencias, se ejecutan si no se cumple ninguno de los valores anteriores

End Select

 

En esta construcción, dependiendo del valor de la variable dato se ejecutará un bloque de sentencias diferente. Los valores que podemos colocar en lugar de valor1, valor2, valor3 no sólo se limitan a valores constantes como números y cadenas de texto, sino que podemos comparar con un número como podemos ver en el siguiente ejemplo, en el que tenemos una variable de tipo single llamada NotaFinal en la que está guardada la nota de un alumno:

 

Select Case NotaFinal

Case Is < 5

print “Suspenso”

Case Is < 6

print “Suficiente”

Case Is < 7

print “Bien”

Case Is < 9

print “Notable”

Case Else

print “Sobresaliente”

End Select

 

Como podemos observar si utilizamos los operadores lógicos como >, <, =, <=, >= debemos anteponer el operador Is. Si lo que hacemos es comparar con un intervalo de valores colocaremos el operador to entre los limites del intervalo.

 

Case 5 to 5.99

print “suficiente”

 

También podemos realizar comparaciones con un conjunto de valores separados por comas:

 

Case 1, 3, 5

print “el numero es impar”

 

Ejercicios:

 

1)  Escribe un programa que imprima la palabra GRANDE si un número es mayor o igual que 1000 y PEQUEÑO en caso contrario.

2)  Un programa debe indicar si un número es positivo, negativo o cero. ¿Cuál será su código?

3)  Indica como sería el código de un programa en el que a partir del valor numérico del mes nos dijese en que estación del año nos encontramos.

4)  Indica como se escribiría el código en el que a partir del valor numérico del mes nos dijese el nombre del mes en que nos encontramos.

 

 

Volver