11. Algoritmos || Estructuras selectivas


Como vimos en el post anterior, las estructuras selectivas nos permite escoger entre dos o más acciones, estás evalúan una condición y a continuación ejecutan una sentencia, debes tener presente que no se ejecutan todas a la vez, o es una o es otra, pero no todas a la vez. Las estructuras selectivas se dividen en tres:





  • simples
  • dobles
  • múltiples

Vamos a estudiar cada una y veremos su sintaxis.


Alternativa simple (si-entonces)


Este tipo alternativa es la más simple de todas, evalúa una condición y de ser cierta, ejecuta una acción, de ser falsa, no hace nada. Su sintaxis es la siguiente:

Si (condición) entonces 
    // Sentencias... 
Finsi 

Nota: observa que las palabras si y finsi se alinean verticalmente para identarse, ten en cuenta esto para hacer un algoritmo más legible.


Alternativas dobles (si-entonces)


Puesto que la estructura anterior es muy limitada, se creó una forma que acepta dos opciones, de esta forma siempre va a ocurrir algo porque se va a evaluar una condición, si es verdadera, entonces ejecuta una sentencia, si es falsa, se ejecuta otra. Su sintaxis es como sigue:

Si (condición) entonces 
    Escribir "Aprender a programar";
Sino 
    Escribir "Aprender algoritmos"; 
Finsi 

Diagrama de flujo


Diagrama Nassi-Shneiderman


Aquí evalúa la condición y si es verdadera, escribe en pantalla Aprender a programar en caso de ser falsa, ejecuta la otra sentencia y escribe en pantalla Aprender algoritmos. Otra vez podrás notar que las palabras si, sino y finsi en el pseudocódigo se alinean verticalmente para identarse, ten en cuenta esto para hacer un algoritmo más legible ya que es la forma más idónea de hacerlo.

Ejemplos:

Hacer un algoritmo que diga si un número es positivo o negativo.

Definir num como entero; 
Escribir "Ingresa un número"; 
Leer num; 

    Si (num > 0) entonces 
        Escribir "El número es positivo"; 
    Sino 
        Escribir " El número es negativo "; 
    Finsi 

Finalgoritmo 

Hacer un algoritmo que diga si un número es par o impar.

Definir num como entero; 
Escribir "Ingresa un número"; 
Leer num; 

    Si (num mod 2 = 0) entonces 
        Escribir "El número es par"; 
    Sino 
        Escribir " El número es impar"; 
    Finsi 

Finalgoritmo

Nota: la condición siempre va encerrada dentro de paréntesis.


Alternativas múltiples (según-hacer-caso)


Como vimos en el ejemplo de la comida en el post pasado, siempre habrá un punto en donde tengamos múltiples opciones, para resolver este problema utilizamos una estructura de alternativas múltiples ya que en ocasiones puede ser más cómodo de utilizar, luego veremos que también lo podemos hacer con alternativas dobles anidadas. La alternativa múltiple (según-hacer-caso) va a evaluar una condición que podrá tomar distintos valores, según sea el resultado de esta condición, se va a ejecutar una acción especifica. Su sintaxis es:

Segun (condición) hacer 
Caso 1:
    Escribir "Aprender a programar"; 
Caso 2: 
    Escribir "Aprender algoritmos";
Caso 3: 
    Escribir "Aprender a crear juegos";
. 
. 
. 
Caso n: 
    Escribir "Aprender n cosas"; 
De otro modo: 
    Escribir "No aprender nada";
Finsegun 

Se va a evaluar la condición, si esta llega a ser igual que el valor de algunos de los casos, entonces ejecutará las sentencias de ese caso. Si la condición no es igual a ninguno de los casos, entonces ejecuta la parte de De otro modo.

Diagrama de flujo


Diagrama Nassi-Shneiderman


Ejemplo:

Hacer un algoritmo que escriba el día de la semana.

Algoritmo dia_semana 
Definir dia como entero; 
leer dia; 

segun (dia) hacer 
caso 1: escribir "Lunes"; 
caso 2: escribir "Martes"; 
caso 3: escribir "Miércoles"; 
caso 4: escribir "Jueves"; 
caso 5: escribir "Viernes"; 
caso 6: escribir "Sábado"; 
caso 7: escribir "Domingo"; 
de otro modo: Escribir "Día no valido"; 
finsegun 

finalgoritmo 

Observa que según el valor que tome la variable dia, se va a ejecutar una acción especifica.

Nota:el uso de De otro modo es totalmente opcional.



1 comentario: