martes, 25 de octubre de 2011

Cual Usar SI o Segun Sea en Pseudocodigo?????

La primera duda que sale cuando se mira este tema la primera vez es cual voy a usar o si las dos se pueden usar de la misma manera.

Tratare la manera de explicarlo lo mas sencillo y dejando de lado la programacion ya que el pseudocodigo tiene que ser generico y entendible y no estar atado a un lenguaje especifico.

Cuando usaremos SI , el primero el si simple lo usaremos cuando solo tengamos una condicion, y no nos diga que accion tomar en caso de que eso sea lo contrario,"lo estoy tomando a nivel de ejercicio pseudocodigo no a nivel de analisis de sistemas eso es otro cuento".

El si doble lo usaremos cuando veamos que hay una condicion con una accion verdadera y si esa accion no se cumple haremos otra accion que corresponde a cuando es falso,los si los podemos usar anidados o en escalera "anidados me refiero a 'si condicion entonces sino si condicion entonces ' asi como el ejemplo del  anterior post, tambien los podemos tener en escalera que son si simples sobre otro si simple al igual con el si doble.

Para entenderlo mejor haremos un ejemplo de varias formas posibles:
  • Elabore un algoritmo, que calcule el aumento de sueldo de un trabajador,conociendo del mismo, su nombre, tipo de trabajador, su sueldo y la cantidad de hijos que tiene. El porcentaje de aumento del sueldo viene dado por el tipo de trabajador que es:
    Tipo de trabajador
    ‘V’      10%
    ‘G’      15%
    ‘E’      25%
    Adicionalmente se le paga una prima por cada hijo la cual es conocida y la misma para todos.
Forma 1 Segun sea
En este ejemplo vemos solucionado el ejercicio con la estructura segun sea y escribiendo dentro de cada caso.Pero lo podemos hacer de otra manera escribiendo al final y los casos solo hacer las operaciones.

Forma 2 Segun sea
Y al final es el mismo resultado solo que con Logica distinta.ahora veamos como lo podemos hacer usando el SI.

Forma 1 SI
La primera forma es usando los si anidados como lo explicaba arriba solo que al final tenemos que cerrar cuantos si hemos abierto si contamos hay 3 si por tanto deben haber 3 finsi.Aca tambien pudimos escribir dentro de cada condicion pero se harian mas lineas de codigo.

Forma 2 SI
La segunda forma usando si simples en escalera e imprimiendo al final como ven hay muchas maneras de resolverlo algunas que son mas optimizadas y otras que no pero al final es el mismo resultado.

Ahora la pregunta del Millon cual voy a usar ????:
Puedes usar el que mas se acomode a la situacion aunque la mayoria de veces usaras los si ya que el segun sea es una estructura fija (en lenguajes de programacion) pero en pseudocodigo tu puedes especificar rangos de valores en los segun sea . como asi ??? ahi va un ejemplo.

Lo comun es usarlo asi :

segun_sea letra hacer
 'A': escribir "a"
 'B': escribir "b"
 'C': escribir "c"
 'D': escribir "d"
 'F': escribir "f"
Fin_segun_sea

Con valores fijos pero tambien puedes especificar rangos de valores en pseudocodigo.

segun sea nota hacer
 nota >7 y  nota <=10:  escribir "buena nota"
 nota >5 y  nota <7:  escribir "aceptable nota"
 nota >0 y  nota <5:  escribir "mala nota"
fin_segun_sea

Yo se que hasta aca los que programan ya me quieren insultar que eso no es asi pero calmados yo tambien cuando lo vi me puse a pensar y a investigar si eso es posible en el Libro de fundamentos de programacion de Luis Joyanes Aguilar que esta en descarga en este blog lo dice de otra manera.

segun sea e hacer
  2,4,6,8,10 : escribir 'numeros pares'
  1,3,4,7,9 : escribir 'numeros impares'
fin_segun_sea

Especificando mas datos pero nunca con condiciones boolenas.Pero porque el autor luego del los fundamentos hace referencia a C y C++ para pasar su pseudocodigo a codigo, porque ese lenguaje en la estructura solo acepta datos primitivos como char,int byte entre otros al igual que java,php.

Ahora el codigo descrito arriba con condiciones boolenas se puede hacer a nivel logico,por que para cualquiera que lea tu pseudocodigo pueda desarrollar correctamente que entienda que es un rango. en pascal si se puede hacer lo del pseudocodigo.

Ahora visto esto mi recomendacion es que lo usemos los si para condiciones boolenas por ejemplo nota>7 o nota < 7 , y los segun sea con datos estaticos como numero de dia 1,2,3,4,5,6,7 o caracteres. aunque lo podemos hacer como lo dije arriba pero para mi no es que este malo sino que seria una mala implementacion , aunque como lo dije arriba el psedocodigo tiene que ser generico y entendible para ser escrito en cualquier lenguaje.

Para los que quieran practicar mas ahi les dejo dos guias de ejercicios Ojo no estan resueltas.

Comenten no sean bayuncos...

1 comentario: