martes, 31 de mayo de 2016

PSEUDOCODIGO.

El pseudocódigo (o falso lenguaje) es comúnmente utilizado por los programadores para omitir secciones de código o para dar una explicación del paradigma que tomó el mismo programador para hacer sus códigos, esto quiere decir que el pseudocódigo no es programable sino facilita la programación.

El principal objetivo del pseudocódigo es el de representar la solución a un algoritmo de la forma más detallada posible, y a su vez lo más parecida posible al lenguaje que posteriormente se utilizará para la codificación del mismo

El pseudocódigo utiliza para representar las acciones sucesivas palabras reservadas en inglés (similares a sus homónimos en los lenguajes de programación), tales como star,begin, end, stop, if-then-else, while, repeat-until….etc
Es un lenguaje de especificación de algoritmos. El uso de tal lenguaje hace el paso de codificación final (esto es, la traducción a un lenguaje de programación) relativamente fácil.

El pseudocódigo nació como un lenguaje similar al inglés y era un medio representar básicamente las estructuras de control de programación estructurada. Se considera un primer borrador, dado que el pseudocódigo tiene que traducirse posteriormente a un lenguaje de programación. Cabe señalar que el pseudocódigo no puede ser ejecutado por una computadora.

LISTA DE PALABRAS RESERVADAS Y SU SIGNIFICADO:

Instrucción
Significado
algoritmo nombre          
Marca el comienzo de un algoritmo y le adjudica un nombre
Inicio      
Marca el comienzo de un bloque de instrucciones
fin          
Marca el final de un bloque de instrucciones
variables

nombre_var es tipo_de_datos 
Declaración de variables. Indica el identificador y el tipo de las variables que se van a usar en el algoritmo
constantes

nombre_const = expresión        
Declaración de constantes. La expresión se evalúa y su resultado se asigna a la constante. Este valor no puede modificarse a lo largo del programa.
leer (variable)
Entrada de datos. El programa lee un dato desde un dispositivo de entrada (si no se indica otra cosa, el teclado), asignando ese dato a la variable
 
escribir (variable)
Salida de datos. Sirve para que el programa escriba un dato en un dispositivo de salida (si no se indica otra cosa, la pantalla).
variable = expresión
Asignación. La expresión se evalúa y su resultado es asignado a la variable
si (condición) entonces
inicio
acciones-1
fin
si_no
inicio
acciones-2
fin
Instrucción condicional doble. El ordenador evaluará la condición, que debe ser una expresión lógica. Si es verdadera, realiza las acciones-1, y, si es falsa, las acciones-2.Instrucción condicional simple. Es igual pero carece de la rama “si_no”, de modo que, si la expresión de falsa, no se realiza ninguna acción y la ejecución continúa por la siguiente instrucción
según (expresión) hacer
inicio
valor1: acciones-1
valor2: acciones-2
valor3: acciones-N
si_no: acciones-si_no
fin
Instrucción condicional múltiple. Se utiliza cuando hay más de dos condiciones posibles (verdadero o falso) . Se evalúa la expresión, que suele ser de tipo entero, y se busca un valor en la lista valor1, valor2,… valorN que coincida con ella, realizándose las acciones asociadas al valor coincidente.Si ningún valor de la lista coincide con la expresión del “según”, se realizan las acciones de la parte “si_no”.
mientras (condición) hacer
inicio
acciones
fin
Bucle mientras. Las acciones se repiten en tanto la condición, que debe ser una expresión lógica, sea verdadera. La condición se evalúa antes de entrar al bloque de acciones, de modo que pueden no ejecutarse ninguna vez.
repetir
inicio
acciones
fin
mientras que (condición)
Bucle repetir. Las acciones se repiten en tanto que la condición, que debe ser una expresión lógica, sea verdadera. Se parece mucho al anterior, pero la condición se evalúa al final del bucle, por lo que éste se ejecuta, como mínimo, una vez
para variable desde expr-ini hasta expr-fin hacer
 inicio
 acciones
 fin
Bucle para. Se evalúa la expresión expr-ini, que debe ser de tipo entero, y se asigna ese valor a la variable. Dicha variable se incrementa en una unidad en cada repetición de las acciones. Las acciones se repiten hasta que la variable alcanza el valor expr-fin.

HERRAMIENTAS PARA CREAR ALGORITMOS.

Para representar un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo del lenguaje de programación elegido. Ello permitirá que un algoritmo pueda ser codificado indistintamente en cualquier lenguaje . Para conseguir este objetivo se precisa que el algoritmo sea representado gráfica o numéricamente , de modo que las sucesivas acciones no dependan de la sintaxis de ningún lenguaje de programación , sino que la descripción pueda servir fácilmente para su transformación en un programa , es decir ,su codificación.
Los métodos usuales para representar un algoritmo son:
  • Diagramas de FLUJO
  • PseudoCódigo
  • Diagrama N-S


CORRIDAS O PRUEBAS DE ESCRITORIO.

Consiste en  dar valores a las variables que hemos definido y que siguen  el flujo del programa para comprobar  si al final el resultado es el acertado. 

Por ejemplo: 

- No ingresar un dato  de nacimiento que sea mayor que la fecha actual.
- No ingresar un número negativo donde deber ir uno positivo o sin decimales;
- No ingresar un valor numérico donde solo debe ir texto;
- No ingresar un valor fuera del rango establecido;
etc.,

En casos de generar algun  error, el programa tendra que  enviar al usuario  un mensaje indicándole esto y dándole la oportunidad de corregir.

En los casos en que deba ingresar una clave de acceso, no se debe permitir que la ingrese más de 3 veces. En este caso se supone que no es la persona autorizada y el programa no debe permitirle seguir "probando" y normalmente lo cerramos sin más (luego de ponerle un cartelito en donde le indicamos de tal circunstancia).

Una vez todo haya funcionado bien en el papel, entonces ya podemos escribir el pseudocódigo siguiendo el diagrama de flujo.

Esta prueba es para no perder tiempo escribiendo el programa y luego tener que buscar EN DONDE está el error y como debemos corregirlo.

También sirve para optimizar un algoritmo viendo como podemos llegar a un determinado resultado con menos pasos.

IMPORTANTE: Casi siempre pasa que NUNCA el programa va a funcionar correctamente la primera vez. SIEMPRE deberemos hacerle ajustes y correcciones. Y eso es parte de la garantía que damos cuando diseñamos un Sistema a medida.

NO OLVIDAR que el programa deber ser lo más intuitivo posible y tener, en algunos casos, carteles de ayuda cuando presione la tecla programada (generalmente la F1 como cualquier programa comercial). Para salir utilizar la tecla ESC (como en cualquier...)
Esto hace a la profesionalidad del sistema. 

A continuacion algunos ejemplos: 


SOFTWARE PARA LA EJECUCIÓN DE ALGORITMOS.

Algunos ejemplos de estos son:

PSEINT – PIPEH PSeudo Interprete
A la hora de programar tenemos un panorama bastante extenso. Múltiples y excelentes opciones se nos presentan para escoger, y solo nuestra pericia y gusto particular nos puede decantar por una linea.
¿Pero que pasa cuando queremos programar pero no sabemos absolutamente nada de eso?. ¿Que herramienta nos pueda ayudar a arrancar en este fabuloso mundo?. Sinceramente creo que hay muy pocas, y enfocadas a los nuevos talentos menos. Siempre puedes tirar de un tutorial e ir aprendiendo paso por paso un lenguaje de programación especifico, pero lo ideal sería que adquirieras un razonamiento algorítmico alejado de la forma especifica de un lenguaje particular, cosa que en el futuro te permitirá adaptarte mejor a diversas situaciones. Recuerdo que en mis comienzos no enseñaban el pesudocodigo y a plasmar los algoritmos en diagramas de flujos. Debo decir que no es algo muy sencillo de captar a la primera, pero todo depende de como y con quien lo hagas.
Precisamente hace muy poco descubrí una herramienta que te puede facilitar todo este proceso inicial de adaptación de una forma ideal y bastante practica. Se trata de Pseint, el cual no es mas que un interprete de pseudocodigo con herramientas muy interesantes que no tenian el papel y el lápiz de mi época.

Sus principales características son:
  1. Presenta herramientas de edición básicas para escribir algoritmos en pseudocodigo en español
  2. Permite la edición simultánea de múltiple algoritmos
  3. Presenta ayudas para la escritura
  4. Autocompletado
  5. Ayudas Emergentes
  6. Plantillas de Comandos
  7. Coloreado de Sintaxis
  8. Indentado Inteligente
  9. Puede ejecutar los algoritmos escritos
  10. Permite ejecutar el algoritmo paso a paso controlando la velocidad e inspeccionando expresiones
  11. Puede confeccionar automáticamente la tabla de prueba de escritorio
  12. Determina y marca los errores de sintaxis y en tiempo de ejecución
  13. Genera diagramas de flujo a partir del algoritmo escrito
  14. Convierte el algoritmo de pseudocodigo a codigo C++
  15. Ofrece un sistema de ayuda integrado acerca del pseudocódigo y el uso del programa (esta última, aún en construcción)
  16. Incluye un conjunto de ejemplos de diferentes niveles de dificultad
  17. Es multiplataforma (probado en Microsoft Windows y GNU/Linux)
  18. Es totalmente libre y gratuito (licencia GPL).
Como puedes ver es la herramienta perfecta para iniciarse en el mundo de la programación, así que si eres nuevo en estas lides o conoces a alguien que próximamente vaya a caminar por este camino de control, no dudes en recomendar este genial Pseudo IDE.


DIAGRAMAS DE FLUJO CON DFD

Que es DFD?
DFD es un software diseñado para construir y analizar algoritmos. Se pueden crear diagramas de flujo de datos para la representación de algoritmos de programación estructurada a partir de las herramientas de edición que para éste propósito suministra el programa. Después de haber ingresado el algoritmo representado por el diagrama, podrá ejecutarse, analizarse y depurarse en un entorno interactivo diseñado para este fin. 
Un algoritmo es un procedimiento para la resolución de problemas de cualquier tipo por medio de determinada secuencia de pasos simples. El concepto fue utilizado originalmente para el cálculo matemático pero ahora es ampliamente usado en programación de computadoras.
Los diagramas de flujo de datos están conformados por figuras conectadas con flechas. Para ejecutar un proceso descrito por un diagrama de flujo de datos se comienza por el INICIO y se siguen las flechas de figura a figura, ejecutándose las acciones indicadas por cada figura; el tipo de figura indica el tipo de paso que representa. Son frecuentemente usados debido a que pueden suprimir detalles innecesarios y tener un significado preciso, si son usados correctamente.