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...

miércoles, 5 de octubre de 2011

Ejemplos Selectivas Algoritmo

hoy veremos un ejemplo usando selectivas dobles y aplicando operadores logicos un ejercio simple pero que nos puede enseñar mucho.
  • El ISSS requiere clasificar a las personas que se jubilaran en el año 2004. Existen tres tipos de jubilaciones: por edad, por antigüedad joven y por antigüedad adulta. Las personas adscritas a la jubilación por edad deben tener 60 años o más y una antigüedad en su empleo de menos de 25 años.    Las personas adscritas a la jubilación por antigüedad joven deben tener menos de 60 años y una antigüedad en su empleo de 25 años o más. Las personas adscritas a la jubilación por antigüedad adulta deben tener 60 años o más y una antigüedad en su empleo de 25 años o más.

Siempre lo primero tenemos que analizarlo bien , al leerlo nos damos cuenta que nos da un rango de edades y tambien observamos que van separados por una y ("Las personas adscritas a la jubilación por edad deben tener 60 años o más y una antigüedad en su empleo de menos de 25 años") no esta dando un rango de decision entonces tenemos que usar el operador logico AND Y en español acordemonos de las tablas de verdad de AND sabemos que siendo verdaderas las premisas la conclusion es verdadera de lo contrario siempre sera falsa.

Luego del sino tenemos que volver hacer un si ya que nos pide otro rango y al final cerramos finsi como tantos si hemos abierto, acordemonos que la Y es inclusiva todas tienen que ser verdaderas para que sea cierto y entre al si si usaramos O solo cuando sean todas falsas sera falsa la conclusion mientras no sera verdadera.

Si tienen preguntas dudas o traumas pues aca estamos para responder.

viernes, 30 de septiembre de 2011

Estructura Selectiva Parte 3

Con frecuencia en la practica es necesario que existan mas de dos elecciones posibles aunque se podria resolver por estructuras alternativas simples o dobles anidadadas o en cascada sin embargo este metodo si el numero de alternativas es grande puede plantear serios probles de escritura de algoritmo.

Usando la estructura de decisión múltiple se evaluará una expresión que podrá tomar n valores distintos, 1, 2 , 3, ....,n y según que elija uno de estos valores en la condición, se realizará una de las n acciones o lo que es igual, el flujo del algoritmo seguirá sólo un determinado camino entre los n posibles.

Esta estructura se representa por un selector el cual si toma el valor 1 ejecutará la acción 1, si toma el valor 2 ejecutará la acción 2, si toma el valor N realizará la acción N.
 Sintaxis

Diagrama
 Ejemplo 1:


Facil nos pide que le escribamos los dias de la semana dependiendo del numero insertado si el numero esta fuera del rango mandamos un mensaje de advertencia.

Mas adelante discutiremos mas afondo cuando usarlas y cuando no y sus diferencias.

Comenten no sean bayuncos

jueves, 29 de septiembre de 2011

Estructura Selectiva Parte 2

Hoy veremos la parte de las selectivas trabajaremos con las dobles las que llevan si sino .La estructura anterior es muy limitada y normalmente se necesitara una estructura que permita elegir entre dos opciones o
alternativas posibles,en funcion del cumplimiento o no e una determinada condicion si la condicion es verdadera se ejecuta la accion 1 si es falsa se ejecuta la accion 2.

Son estructuras lógicas que permiten controlar la ejecución de varias acciones y se utilizan cuando se tienen dos opciones de acción, por la naturaleza de estas se debe ejecutar una o la otra, pero no ambas a la vez, es decir, son mutuamente excluyentes.

Ejemplo 1:
Dado como dato la calificación de un alumno en un examen, escriba "aprobado" si su calificación es mayor igual que 6 y "Reprobado" en caso contrario.


Un ejemplo tan sencillo que solo tenemos que leer la nota del alumno y formularnos SI la nota es mayor o igual a 6 entonces imprimimos aprobado sino es porque la nota es menor a 6 escribimos reprobado.

Ejemplo 2:
Dado como dato el sueldo de un trabajador, aplicar un aumento del 25% si su sueldo es inferior a $1000 y 11% en caso contrario, luego imprimir el nuevo sueldo del trabajador.


Otro sencillo leermos el sueldo y nos formulamos SI el sueldo es menor a 1000 entonces le aplica al sueldo un aumento del 25% sino es porque el sueldo es mayor a 1000 y se le hace un descuento del 11% .

Aca no importa el orden como que te quede la condicion lo puedes evaluar como tu quieras como por ejemplo primero evaluamos que el sueldo sea menor a 1000 pero podemos evaluar si el sueldo es mayor a 1000 y aplicar el descuento de 11% sino el de 25%.

Comenten no sean bayuncos ...

viernes, 16 de septiembre de 2011

Estructuras Selectivas Parte 1

Hoy seguiremos con lo basico veremos lo que nos complicara un poco la vida a lo que ya hemos ido haciendo que son las estructuras selectivas o de decision como les quieran llamar.

Las estructuras selectivas se utilizan para tomar decisiones logicas , de ahi que se suelen llamar tambien estructuras de decision o alternativas.

En las estructuras selectivas se evalua una condicion y en funcion del resultado de la misma se realiza una opcion u otra.

Las estructuras selectivas pueden ser:
  • simples
  • dobles
  • multiples
Las estructura selectiva simple si-entonces ejecuta una determinada accion cuando se cumple una determinada condicion.la seleccion si-entonces evalua la condicion.
  • si la condicion es verdadera entonces ejecuta la accion
  • si la condicion es falsa entonces no hace nada
Tenemos un cuadro de ejemplo en flujograma y pseudocodigo en ingles y en español ese cuadro que vemos es el diagrama N-S.

Ejemplo Practico :


Un ejercicio facil analizamos que nos pide el promedio de 4 notas y que SI ese promedio es mayor o igual a 6 es porque esta aprobado , declaramos las variables para las notas y el promedio y una cadena que diga aplazado como valor original y si el promedio esta aprobado esa variable tendra el valor de aprobado. si el promedio es mayor o igual a 6 entonces esta aprobado y mostrara el promedio con un mensaje de aprobado.


Ejemplo 2:
Lo analizamos y vemos que nos pide el total a pagar por 15 articulos y que SI el total a pagar excede a $100 le haremos un descuento del 30%.

Bien esta estructura nos sirve para tomar ciertas decisiones simples luego veremos las dobles y las multiples.

Comenten no sean bayuncos.