PSEUDOCÓDIGO



PSEUDOCÓDIGO:

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

Definición de datos del pseudocódigo

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.

Ventajas del pseudocódigo sobre los diagramas de flujo

Los pseudocódigos presentan los siguientes beneficios:
  1. Ocupan mucho menos espacio en el desarrollo del problema.
  2. Permite representar de forma fácil operaciones repetitivas complejas.
  3. Es más sencilla la tarea de pasar de pseudocódigo a un lenguaje de programación formal.
  4. Si se siguen las reglas de identación se puede observar claramente los niveles en la estructura del programa.
  5. En los procesos de aprendizaje de los alumnos de programación, éstos están más cerca del paso siguiente (codificación en un lenguaje determinado, que los que se inician en esto con la modalidad Diagramas de Flujo).
  6. Mejora la claridad de la solución de un problema.

Ejemplos de algoritmos en PSeudoCodigo

En esta sección puede observar ejemplos de pseudocódigos válidos en PSeInt, así como también sus correspondientes diagramas de flujo (en cualquiera de las tres formas soportadas). Recuerde que el lenguaje de PSeInt puede adaptarse a diferentes perfiles. A modo de ejemplo se incluyen los algoritmos para dos perfiles diferentes, uno con reglas flexibles, y otro con reglas estrictas.

  • Suma: Este es el ejemplo más simple. Muestra cómo cargar dos números de dos variables, calcular la suma de los mismos y mostrarla en pantalla.
  • Mayores: Busca los dos mayores de un arreglo de N datos.
  • Coloquial: En este ejemplo se muestran algunas de las variantes que se pueden utilizar con el perfil de lenguaje Flexible para que el pseudocódigo se asemeje más al lenguaje coloquial.
  • Subprocesos: Ejemplo básico que ilustra la sintaxis para declarar nuevas funciones en pseudocódigo.
  • AdivinaNumero: Sencillo juego en el que el usuario debe adivinar un número aleatorio
  • Promedio: Ejemplo básico de uso de un acumulador y la estructura de control Para para calcular el promedio de un conjunto de valores
  • Triangulo: Este algoritmo determina a partir de las longitudes de tres lados de un triángulo si corresponden a un triángulo rectángulo (para utiliza la relación de Pitágoras, tomando los dos lados de menor longitud como catetos), y en caso afirmativo informa el área del mismo. Ejemplo de la estructura Si-Entonces y anidamiento.
  • OrdenaLista: Este ejemplo almacena una lista de nombres en un arreglo y luego los ordena alfabéticamente. El método de ordenamiento es relativamente simple. Para la entrada de datos se utiliza una estructura Mientras, sin saber a priori la cantidad de datos que se ingresarán
  • Modulo: Ejemplo trivial del uso del operador de módulo (MOD o %)
  • Menu: Ejemplo simple de menú de opciones, con las estructuras Repetir-Hasta Que y Segun
  • Digitos: Separa los dígitos de un número entero utilizando el operador módulo
  • Resolvente: Utiliza la fórmula resolvente para determinar las raíces de una ecuación de segundo grado a partir de sus tres coeficientes, y las informa adecuadamente según su tipo (reales iguales, reales distintas, imaginarias)
  • Primos: Calcula iterativamente los N primeros números primos
  • Factorizacion: Ejemplo de algoritmo para descomponer un número en sus factores primos
  • Cadenas: Muestra la utilización de las funciones de cadenas para contar las vocales de una frase
  • Para: En este ejemplo se recorre un arreglo utilizando las tres variantes de la estructura Para
  • Potencia: Ejemplo de una función recursiva para calcular una potencia
  • Promedio2: Ejemplo de cómo crear subprocesos que reciban arreglos como argumento
  • Misil: Ejemplo de animación con códigos ASCII y la instrucción Esperar
  • Romanos: Muestra como convertir números enteros a notación romana utilizando arreglos
Hanoi: Implementa el conocido juego de las torres de Hanoi en pseudocódigo
TaTeTi: Algoritmo para el juego del TaTeTi
La escritura de órdenes una de otra la realizaremos valiéndonos de un elemento de separación, que en nuestro caso serán los dos puntos ( : ). Así podríamos escribir: A = 3 : B = 2 : C = A * B.
Diferentes órdenes relacionadas a través de dos puntos reciben el nombre de órdenes concatenadas y se ejecutan una detrás de otra, de izquierda a derecha. Como decíamos anteriormente, sería equivalente escribir:

1.  Inicio
2.  A = 3 : B = 2 : C = A * B : D = C ^2
     3.  Fin
<- Equivale a ->
1.  Inicio
2.  A = 3
3.  B = 2
4.  C = A * B
5.  D = C ^2
6.  Fin


Inicio sangría
--------------------------------> Instrucciones con sangría
Fin de la sangría
[Valor de los parámetros]
 A = 7
   B = 16
 C = 3
[Fin de asignación de valor a parámetros]


Parece que la concatenación de órdenes redunda en una mejor economía del algoritmo, puesto que se reduce el número de líneas a emplear. Pero ojo: ¿Por qué no escribirlo todo en una sola línea, incluso los indicadores de inicio y fin? La respuesta nos lleva a las formas de percepción y de comprensión humanas. Un libro cualquiera podría ser escrito en una sola línea. Sin embargo, se organiza en párrafos y líneas utilizando efectos visuales como son las sangrías y los márgenes que afectan más a la percepción que al contenido.
En la escritura de pseudocódigo buscaremos claridad y ordenación visual. No es recomendable escribir muchas órdenes en una sola línea. Para ello nos basaremos en sangrías y en delimitación e información de bloques o procesos. Llamaremos “bloque” a un conjunto de órdenes con interdependencia, estrecha relación o agrupadas con un fin. La sangría se hará siempre respecto a una instrucción o comentario que marcan el inicio y fin de la sangría.


Ejemplos:

[Cálculo de superficies]
S1 = 3 * A
S2 = 4 * B
S3 = 2 * C
[Fin de cálculo de superficies]











TOMADO DE:






Comentarios

Entradas más populares de este blog

TABLA ASCII

CAJA DE TEXTO EN HTML.