Algoritmos.

Definición

Si buscamos en Google la palabra “algoritmo” podremos observar mas de 9 millones de posibles definiciones pero este no depende de una sola ya que no existe una definición formal de dicha palabra. Una de estas definiciones puede ser que un algoritmo es un conjunto de instrucciones definidas que permite llevar a cabo una actividad mediante pasos sucesivos que no generen dudas a quien deba hacer dicha actividad. Partiendo de una entrada y siguiendo los pasos indicados llegaremos al final, donde obtendremos una solución. Este campo se utiliza para la rama de matemáticas o ciencias computacionales entre otras y son utilizados en la vida cotidiana, como el algoritmo de multiplicación o el de división. En general, la parte común en todas las definiciones se puede resumir en las siguientes tres propiedades siempre y cuando no consideremos algoritmos paralelos:

- Un tiempo secuencial, ya que define una secuencia de estados computacionales por cada entrada válida.
- Un estado abstracto. Cada estado computacional puede ser descrito utilizando una estructura de primer orden.
- Exploración acotada. La transición de un estado al siguiente queda completamente determinada por una descripción fija y finita.


Maneras de expresar un algoritmo

Hay varias formas de expresar un algoritmo, entre ellas destacan en lenguaje formal, pseudocódigo o diagramas de flujo. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Estas expresiones son formas más estructuradas para representar algoritmos.

Usualmente, se suele hacer una división de tres niveles a la hora de estructurar un algoritmo:

- Partiendo de una descripción verbal de alto nivel donde se expone el problema y se selecciona un metodo de resolución matemático.
- Seguido de esto, una descripción formal que con la ayuda de pseudocódigos describe una serie de pasos hasta llegar a la solución.
- Finalmente, hay que llevar a cabo una implementación que consiste en redactar el desarrollo de las instrucciones en algún lenguaje de programación.

Pseudocódigo: Es una descripción a alto nivel de un algortimo que emplea la fusión entre el lenguaje verbal con algunas formas sintácticas propias de lenguajes de programación. Este omite detalles que son luego importantes para la implementación y es utilizado en libros y publicaciones científicas.

Diagramas de flujo: Es una forma de expresar gráficamente un algoritmo con el uso de símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO. Estos son utilizados a la hora de expresar pequeños algoritmos por su laboriosa formación.

Diagrama Nassi-Shneiderman

También conocido como el diagrama de Chapin es una representación gráfica que muestra el diseño de un programa estructurado que sirve de ejemplo de un algoritmo. Este fue desarrollado en 1972 por Isaac Nassi y Ben Shneiderman. Utiliza un diseño de lo complejo a lo simple. Se divide el problema a resolver en subproblemas hasta llegar al posible uso de instrucciones simples. Los diagramas Nassi-Shneiderman se utilizan muy raramente en las tareas de programación formal. Su nivel de abstracción es muy cercano al código de la programación estructurada y ciertas modificaciones requieren que la reconstrucción todo el diagrama.

Esta información es un breve resumen de las páginas:

https://es.wikipedia.org/wiki/Algoritmo


https://es.wikipedia.org/wiki/Diagrama_Nassi-Shneiderman