Saltar la navegación

2.2.- Algoritmos y programas.

Después de analizar en detalle el problema a solucionar, hemos de diseñar y desarrollar el algoritmo adecuado. Pero, ¿Qué es un algoritmo?

Algoritmo: secuencia ordenada de pasos, descrita sin ambigüedades, que conducen a la solución de un problema dado.

En una mesa de un obrador de pan, las manos del panadero amasan la harina para darle forma. Al lado, un pan ya cocido y dos hogazas aún por cocer.
Stockbyte DVD-CD (CC BY-NC)

Los algoritmos son independientes de los lenguajes de programación y de las computadoras donde se ejecutan. Un mismo algoritmo puede ser expresado en diferentes lenguajes de programación y podría ser ejecutado en diferentes dispositivos. Piensa en una receta de cocina, ésta puede ser expresada en castellano, inglés o francés, podría ser cocinada en fogón o vitrocerámica, por un cocinero o más, etc.  Pero independientemente de todas estas circunstancias, el plato se preparará siguiendo los mismos pasos.

La diferencia fundamental entre algoritmo y programa es que, en el segundo, los pasos que permiten resolver el problema, deben escribirse en un determinado lenguaje de programación para que puedan ser ejecutados en el ordenador y así obtener la solución.

Los lenguajes de programación son sólo un medio para expresar el algoritmo, es decir, establece una serie de normas sintácticas y semánticas para expresarlo. El diseño de los algoritmos será una tarea que necesitará de la creatividad del desarrollador y de los conocimientos de las técnicas de programación. Estilos distintos, de distintos programadores a la hora de obtener la solución del problema, darán lugar a algoritmos diferentes, igualmente válidos.

En esencia, todo problema se puede describir por medio de un algoritmo y las características fundamentales que éstos deben cumplir son:

  • Debe ser preciso e indicar el orden de realización paso a paso.
  • Debe estar definido, si se ejecuta dos o más veces con los mismos datos de entrada, debe obtener el mismo resultado cada vez. Además, debe dar una respuesta a cualquier dato de entrada.
  • Debe ser finito, debe tener un número finito de pasos.

Para representar gráficamente los algoritmos que vamos a diseñar, tenemos a nuestra disposición diferentes herramientas que ayudarán a describir su comportamiento de una forma precisa y genérica, para luego poder codificarlos con el lenguaje que nos interese. Entre otras tenemos:

  • Diagramas de flujo: Esta técnica utiliza símbolos gráficos para la representación del algoritmo. Suele utilizarse en las fases de análisis.
  • Pseudocódigo: Esta técnica se basa en el uso de palabras clave en lenguaje natural, constantes, variables, otros objetos, instrucciones y estructuras de programación que expresan de forma escrita la solución del problema. Es la técnica más utilizada actualmente.
  • Tablas de decisión: En una tabla son representadas las posibles condiciones del problema con sus respectivas acciones. Suele ser una técnica de apoyo al pseudocódigo cuando existen situaciones condicionales complejas.

Estructura de datos que, como su nombre indica, puede cambiar de contenido a lo largo de la ejecución de un programa.

Estructura de datos que se utiliza en los lenguajes de programación que no puede cambiar su contenido en el transcurso del programa.

Debes conocer

A continuación te ofrecemos algunos recursos interesantes:

  • Elementos visuales de los diagramas de flujo: En este enlace podrás aprender los elementos gráficos más utilizados en la construcción de diagramas de flujo.
  • Software DFD: Se trata de una aplicación que permite construir diagramas de flujo de forma gráfica. Es una aplicación portable: tras su descarga tan solo tienes que ejecutar la aplicación.
    • Descárgala aquí.
    • Observa en el siguiente vídeo su funcionamiento.
Descripción Textual Alternativa para el vídeo "DFD"
  • Pseint: Se trata de una aplicación que permite la construcción de algoritmos a través de un fácil e intuitivo pseudocódigo, complementado con un editor de diagramas de flujo. Es una de las herramientas más utilizadas para iniciarse en el mundo de la algoritmia, proporcionando un entorno con numerosas ayudas y recursos didácticos.

Como vemos en la siguiente, dispondremos de 2 paneles principales, el central para incorporar pseudocódigo directamente, y el de la derecha, con los comandos disponibles para ayudar, si se desconoce la sintaxis en la escritura de instrucciones o estructuras de control.

Ilustración que muestra la interfaz de Pseint
Ministerio de Educación y FP (CC BY-NC)
Ilustración con un ejemplo de algoritmo en pseudocódigo en Pseint.
Ministerio de Educación y FP (CC BY-NC)
Ilustración que muestra el resultado de la interpretación del pseudocódigo de la imagen anterior.
Ministerio de Educación y FP (CC BY-NC)

En la segunda imagen se puede ver un ejemplo de pseudocódigo en Pseint que calcula el área de un cuadrado. Observa como las instrucciones están escritas en un pseudolenguaje bastante parecido al lenguaje natural. Los elementos del panel derecho permiten la introducción de código de forma alternativa a la escritura de sentencias en pseudocódigo.
Por último, la tercera imagen muestra el resultado de interpretar el algoritmo tras pulsar el botón verde de reproducción de la barra de tareas.
Toda la información sobre Pseint.

Autoevaluación

Rellena los huecos con los conceptos adecuados:

A los pasos que permiten resolver el problema, escritos en un lenguaje de programación, para que puedan ser ejecutados en el ordenador y así obtener la solución, se les denomina: .

Habilitar JavaScript