martes, 13 de mayo de 2014

Pseudo codigo

En ciencias de la computación, y análisis numérico el pseudocódigo (o falso lenguaje) es una descripción de alto nivel compacta e informal[1] del principio operativo de un programa informático u otro algoritmo.
Utiliza las convenciones estructurales de un lenguaje de programación real[2] , pero está diseñado para la lectura humana en lugar de la lectura mediante máquina, y con independencia de cualquier otro lenguaje de programación. Normalmente, el pseudocódigo omite detalles que no son esenciales para la comprensión humana del algoritmo, tales como declaraciones de variables, código específico del sistema y algunas subrutinas. El lenguaje de programación se complementa, donde sea conveniente, con descripciones detalladas en lenguaje natural, o con notación matemática compacta. Se utiliza pseudocódigo pues este es más fácil de entender para las personas que el código del lenguaje de programación convencional, ya que es una descripción eficiente y con un entorno independiente de los principios fundamentales de un algoritmo. Se utiliza comúnmente en los libros de texto y publicaciones científicas que se documentan varios algoritmos, y también en la planificación del desarrollo de programas informáticos, para esbozar la estructura del programa antes de realizar la efectiva codificación.
No existe una sintaxis estándar para el pseudocódigo, aunque los ocho IDE's que manejan pseudocódigo tengan su sintaxis propia. Aunque sea parecido, el pseudocódigo no debe confundirse con los programas esqueleto que incluyen código ficticio, que pueden ser compilados sin errores. Los diagramas de flujo y UML pueden ser considerados como una alternativa gráfica al pseudocódigo, aunque sean más amplios en papel.
Las principales características de este lenguaje son:
  1. Se puede ejecutar en un ordenador (con un IDE como por ejemplo SLE, LPP, PilatoX, Maruga Script, Seudocódigo o PSeInt. Otros Ides de consideración son Inter-P y Algor)
  2. Es una forma de representación sencilla de utilizar y de manipular.
  3. Facilita el paso del programa al lenguaje de programación.
  4. Es independiente del lenguaje de programación que se vaya a utilizar.
  5. Es un método que facilita la programación y solución al algoritmo del programa.
Todo documento en pseudocódigo debe permitir la descripción de:
  1. Instrucciones primitivas.
  2. Instrucciones de proceso....
  3. Instrucciones de control.
  4. Instrucciones compuestas.
  5. Instrucciones de descripción.
Estructura a seguir en su realización:
  1. Cabecera.
    1. Programa.
    2. Módulo.
    3. Tipos de datos.
    4. Constantes.
    5. Variables.
  2. Cuerpo.
    1. Inicio.
    2. Instrucciones.
    3. Fin.

Definición de datos del pseudocódigo[editar]

La definición de datos se da por supuesta, sobre todo en las variables sencillas, si se emplea formaciones: pilas, colas, vectores o registros, se pueden definir en la cabecera del algoritmo, y naturalmente cuando empleemos el pseudocódigo para definir estructuras de datos, esta parte la desarrollaremos adecuadamente.

Funciones y operaciones[editar]

Cada autor usa su propio pseudocódigo con sus respectivas convenciones. Por ejemplo, la instrucción "reemplace el valor de la variable x por el valor de la variable y" puede ser representado como:
  • asigne a x\, el valor de y\,

   { \color{OliveGreen} \mathit{ x }} \;
   { \color{BlueViolet}  \mathit{ \gets }} \;
   { \color{OliveGreen} \mathit{ y; }}

   { \color{OliveGreen} \mathit{ x }} \;
   { \color{BlueViolet}  \mathit{ := }} \;
   { \color{OliveGreen} \mathit{ y; }}

   { \color{OliveGreen} \mathit{ x }} \;
   { \color{BlueViolet}  \mathit{ = }} \;
   { \color{OliveGreen} \mathit{ y; }}
Las operaciones aritméticas se representan de la forma usual en matemáticas.

   { \color{Gray}  \mathit{ \{ Esto \; es \; un \; comentario \; normalmente \; matem \acute{a} tico \} }}

   { \color{OliveGreen} \mathit{ volumen }} \;
   { \color{BlueViolet}  \mathit{ \gets }} \;
   { \color{Red}  \mathit{ \pi }}
   { \color{OliveGreen} \mathit{ r }} {}^2
   { \color{OliveGreen} \mathit{ h }}

   { \color{Gray}  \mathit{ // y \; este \; es \; otro \; comentario \; normalmente \; de \; texto // }}

   { \color{OliveGreen} \mathit{ hipotenusa }} \;
   { \color{BlueViolet}  \mathit{ \gets }} \;
   \sqrt{
      { \color{OliveGreen} \mathit{ a }} {}^2 \;
      { \color{BlueViolet}  \mathit{ + }} \;
      { \color{OliveGreen} \mathit{ b }} {}^2 \;
   }

   { \color{OliveGreen} \mathit{ resultado }} \;
   { \color{BlueViolet}  \mathit{ \gets }} \;
   { \color{Tan}   \mathit{ sin }}
   (
      { \color{OliveGreen} \mathit{ a }}
   )

Estructuras de control[editar]

En la redacción del pseudocódigo se utiliza tres tipos de estructuras de control: las secuenciales, las selectivas y las iterativas.

Estructuras secuenciales[editar]

Las instrucciones se siguen en una secuencia fija que normalmente viene dada por el número de renglón. Es decir que las instrucciones se ejecutan de arriba hacia abajo.

   { \color{BlueViolet}  \mathit{ instrucci \acute{o} n_1; }}

   { \color{BlueViolet}  \mathit{ instrucci \acute{o} n_2; }}

   { \color{BlueViolet}  \mathit{ instrucci \acute{o} n_3; }}

   \cdots

   { \color{BlueViolet}  \mathit{ instrucci \acute{o} n_n; }}

Estructuras selectivas[editar]

Las instrucciones selectivas representan instrucciones que pueden o no ejecutarse, según el cumplimiento de una condición.
Diagrama de flujo que muestra el funcionamiento de la instrucción condicional.



   { \color{Sepia} \mathit{ Si }} \;
   { \color{OliveGreen} \mathit{ condici \acute{o} n }} \;
   { \color{Sepia} \mathit{ Entonces }}

   { \color{BlueViolet}  \mathit{ instrucciones; }}

   { \color{Sepia} \mathit{ Fin \; Si }}
La condición es una expresión booleana. Instrucciones es ejecutada sólo si la condición es verdadera.

Selectiva doble (alternativa)[editar]

La instrucción alternativa realiza una instrucción de dos posibles, según el cumplimiento de una condición.
Diagrama de flujo que muestra el funcionamiento de la instrucción condicional.



   { \color{Sepia} \mathit{ Si }} \;
   { \color{OliveGreen} \mathit{ condici \acute{o} n }} \;
   { \color{Sepia} \mathit{ Entonces }}

   { \color{BlueViolet}  \mathit{ instrucciones_1; }}

   { \color{Sepia} \mathit{ Si \; no \; Entonces }}

   { \color{BlueViolet}  \mathit{ instrucciones_2; }}

   { \color{Sepia} \mathit{ Fin \; Si }}
La condición es una variable booleana o una función reducible a booleana (lógica, Verdadero/Falso). Si esta condición es cierta se ejecuta Instrucciones1, si no es así, entonces se ejecuta Instrucciones2.

Selectiva múltiple[editar]

También es común el uso de una selección múltiple que equivaldría a anidar varias funciones de selección.

   { \color{Sepia} \mathit{ Si }} \;
   { \color{OliveGreen} \mathit{ condici \acute{o} n_1 }} \;
   { \color{Sepia} \mathit{ Entonces }}

   { \color{BlueViolet}  \mathit{ instrucciones_1; }}

   { \color{Sepia} \mathit{ Si \; no \; si }} \;
   { \color{OliveGreen} \mathit{ condici \acute{o} n_2 }} \;
   { \color{Sepia} \mathit{ Entonces }}

   { \color{BlueViolet}  \mathit{ instrucciones_2; }}

   { \color{Sepia} \mathit{ Si \; no \; si }} \;
   { \color{OliveGreen} \mathit{ condici \acute{o} n_3 }} \;
   { \color{Sepia} \mathit{ Entonces }}

   { \color{BlueViolet}  \mathit{ instrucciones_3; }}

   \cdots

   { \color{Sepia} \mathit{ Si \; no \; Entonces }}


   { \color{BlueViolet}  \mathit{ instrucciones_n; }}

   { \color{Sepia} \mathit{ Fin \; Si }}

¿que es un diagrama de flujo?

El diagrama de flujo o diagrama de actividades es la representación gráfica del algoritmo o proceso. Se utiliza en disciplinas como programación, economía, procesos industriales y psicología cognitiva.

En Lenguaje Unificado de Modelado (UML), un diagrama de actividades representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema. Un diagrama de actividades muestra el flujo de control general.
En SysML el diagrama de actividades ha sido extendido para indicar flujos entre pasos que mueven elementos físicos (p.ej., gasolina) o energía (p.ej., presión). Los cambios adicionales permiten al diagrama soportar mejor flujos de comportamiento y datos continuos.
Estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin de proceso.

¿que es la programación?

La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. El código fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero sí el diseño del código), aunque sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.
 
Para crear un programa, y que la computadora lo intérprete y ejecute las instrucciones escritas en él, debe usarse un lenguaje de programación. En sus inicios las computadoras interpretaban sólo instrucciones en un lenguaje específico, del más bajo nivel, conocido como código máquina, siendo éste excesivamente complicado para programar