miércoles, 20 de julio de 2011

Pseudocodigo

Pseudocódigo



Pasos iniciales. Pseudocódigo.

Como toda obra de arte, antes, generalmente, se crea un boceto, en programación, antes de escribir un programa, se debe "abocetar" dicho programa, y para ello se escribe un algoritmo preliminar. Un algoritmo es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien lo ejecute. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución.

Una persona, en la vida cotidiana, utiliza algoritmos para resolver un problema.
Nuestro cerebro utiliza esos algoritmos inconscientemente para llevar a cabo una tarea y resolver el problema como por ejemplo el de cambiar una bombilla.

Veamos el caso de cambiar una bombilla que no se enciende: Cuando se observa un foco que está apagado, lo primero que nuestro cerebro se pregunta es si la lámpara está enchufada, si está enchufada, ante esta pregunta existen dos posibles respuestas, sí y no. Si la respuesta es negativa entonces la solución del problema es enchufarla, en esta situación surge otro problema, el cerebro se pregunta si la lámpara se encendió al enchufarla. Si se enciende el problema está solucionado, si no se enciende existen dos posibilidades: o el foco está quemado y hay que reemplazarlo o la lámpara está defectuosa y hay que comprar otra. Ahora, volviendo a la primer pregunta: si la lámpara está enchufada, si la respuesta es afirmativa el cerebro se cuestiona si la lámpara se enciende o no, en este caso volvemos a la misma cuestión anterior cuya solución es comprar un foco o comprar una nueva lámpara.

Una manera de expresar ordenadamente este problema, es utilizando lo que se llama pseudocódigo o falso lenguaje, que es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes de programación, como asignaciones, ciclos y condicionales.

El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación. Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sin embargo, el pseudocódigo en general es comprensible sin necesidad de conocer o utilizar un entorno de programación específico, y es a la vez suficientemente estructurado para que su implementación se pueda hacer directamente a partir de él.

Volviendo al ejemplo se hará un análisis del mismo. En dicho algoritmo existen estructuras que lo definen. Por un lado hay estructuras secuenciales, es decir que hay instrucciones que se siguen unas inmediatamente luego de realizadas otras, hay instrucciones selectivas, que representan instrucciones que pueden o no ejecutarse, según el cumplimiento de una condición determinada. Hay estructuras selectivas dobles, o alternativas. Una instrucción selectiva doble realiza una instrucción de dos posibles, según el cumplimiento de una condición.

Si se analiza más a fondo el algoritmo, se observa que en el mismo hay funciones o procedimientos que se repiten de igual manera. Muchas personas prefieren distinguir entre funciones y procedimientos. Una función, recibe uno o varios valores de entrada y regresa una salida mientras que un procedimiento recibe una entrada y no genera ninguna salida aunque en algún caso podría devolver resultados a través de sus parámetros de entrada si estos se han declarado por referencia. La cuestión es la siguiente: La función se utiliza para que no se tenga que ocupar mucho espació en el pseudocódigo en el caso que el algoritmo sea extenso y se utiliza esta función que se llama a ella en todo caso que se tenga que realizar la misma tarea muchas veces

Ahora se procederá a expresar el problema en pseudocódigo:

  
Si se observa se ve que en el código hay un fragmento que se repite:

a este fragmento se le puede asignar un nombre, por ejemplo: algoritmo Alternativa


Por lo tanto, se puede reemplazar este fragmento de código por una llamada a este algoritmo cada vez que se repita y el algoritmo quedaría de la siguiente manera:

Condición P: Lámpara enchufada;


Condición Q: Lámpara encendida;

Condición R: Foco quemado;

También se designarán las instrucciones:

Instrucción 1: Enchufar la lámpara;

Instrucción 2: Reemplazar foco;

Instrucción 3: Comprar nueva lámpara

No hay comentarios:

Publicar un comentario