8 nov 2011

Condicionales/Selectivas! Parte III

Estructura Selectiva Multiple
Bueno, por ultimo, vamos a ver como usar esta estructura, que nos permite realizar diferentes acciones dependiendo de n cantidad de casos, y se llama: SegunHacer :). Funciona asi: generalmente, se le presenta al usuario un menu de opciones, del cual debera elegir la opcion 1, 2, 3...n. Y Segun que opcion elija, realizara el caso correspondiente, si elige 1, realizara las sentencias de la opcion 1, y asi con todos... Veamos el ejemplo:

Proceso seleccione

 Escribir "1. opcion 1, 2. opcion 2, 3. opcion 3"; //Este sera el menu
 Leer opc; //aca guarda la opcion que elija

 Segun(opc)Hacer //comienza el Segun
   opc 1: //si elige opcion 1
        //sentencias opcion 1
   opc 2: //si elige opcion 2
        //sentencias opcion 2
   opc 3: //si elige opcion 3
        //sentencias opcion 3
   De Otro Modo:
        //sentencias en caso de que no elija ninguna de las opciones
 FinSegun
FinProceso

Me pongo a ver y no hay mucho que explicar, lo que les podria decir es que esta estructura les va a ser realmente util cuando sepamos usar ciclos repetitivos, que es lo siguiente a condicionales/selectivas, pero primero veamos un ejemplo para que no les quede dudas:
Ejercicio: Realizar un algoritmo para un programa que le pida al usuario dos numeros, y luego le muestre un menu con tres opciones: 1. sumar los dos numeros, 2. restar los dos numeros, 3. multiplicarlos, y que por cada caso (obvio) muestre el resultado.

Proceso operar_segun
    Escribir "Ingrese los dos numeros";
    Leer num1; //Supongamos que aca ingresa 5
    Leer num2; //Supongamos que aca tambien ingresa 5
    Escribir "Seleccione opcion: 1. Sumar, 2. Restar, 3. Multiplicar"; //Menu
    Leer opc; //Lee la opcion que elija el usuario

    Segun (opc) Hacer //Segun que opcion elija, hacer lo siguiente:
        opc 1: //Si elije la opcion 1
            res<-num1+num2; //Realiza la suma (5+5) y la guarda en la variable res
            Escribir "Resultado: ",res; //Muestra el texto: Resultado 10
        opc 2: //Si elije la opcion 2
            res<-num1-num2; //Realiza la resta (5-5) y la guarda en res
            Escribir "Resultado: ",res; //Muestra: Resultado 0
        opc 3: //Si elije la opcion 3
            res<-num1*num2; //Realiza la multiplicacion (5*5) y la guarda en res
            Escribir "Resultado: ",res; //Muestra: Resultado 25
        De Otro Modo: //Si el usuario ingresara una opcion diferente a 1, a 2 o a 3
            Escribir "Error, opcion incorrecta"; //Muestra: Error, opcion incorrecta
    FinSegun //Importante marcar el fin del segun

FinProceso //Fin del programa

Que mas agregar? la cantidad de opciones que puede tener un segun son 257, suficientes jeje, esto no quiere decir que el numero de opcion tenga como limite 257, ejemplo:

Segun(opc)Hacer
    opc 4
       //sentencias
    opc 598:
       //sentencias
    opc 23:
       //sentencias
FinSegun

Y cuando el usuario ingrese 4, ejecutara las sentencias del opc 4, cuando ingrese 598, ejecutara las sentencias del opc 598 y lo mismo con el 23.  Algo importante es que solo admite variables del tipo enteras, no flotantes(con coma), osea, que no podria haber una opcion que sea 4.5, por ejemplo. Tambien puede contener opciones sin sentencias, y obviamente en esa opcion el programa no realizara ninguna accion.
Como veran, en este ejemplo no puse el De Otro Modo:, por que este caso no es indispensable para el Segun, solo lo ponemos si queremos. Algo que tambien deben saber, es que no puede haber dos casos con el mismo valor, por obvias razones -_-

Entonces tenemos que el Segun:
Puede tener hasta 257 casos distintos.
No puede haber dos casos con el mismo valor.
Solo admite variables enteras.
Puede contener opciones sin sentencias.

Ejercicios de lo que vimos hasta ahora:

Ejercicios Nivel 2

Bueno, creo que esto es todo, si me olvido de algo despues agregare, cualquier cosa comenten :) Para la proxima un par de ejercicios con todo lo que explique hasta ahora, Saludos!!

No hay comentarios:

Publicar un comentario