Algoritmo y programa


Un algoritmo es un conjunto de instrucciones ordenadas, finitas y delimitadas que se crean con el fin de describir de forma sistemática la ejecución de una tarea.

Los algoritmos son de uso común en el día a día, y se pueden encontrar en manuales de uso, instrucciones para ejecutar un plan, o guías para ejecutar procesos. Sin embargo, el uso del término es más común en el ámbito de la programación.

Un programa es una secuencia lógica de instrucciones para ejecutar tareas específicas en una computadora. Dichas secuencias están escritas en código y son diseñadas por programadores, usando uno o más algoritmos.

La diferencia entre un algoritmo y un programa, es que si bien ambos hacen referencia una serie de instrucciones, los algoritmos pueden estar escritos en código o en lenguaje natural, mientras que los programas sólo pueden estar escritos en lenguaje de programación.

Además, los algoritmos pueden ser ejecutados por un ser humano, mientras que los programas están diseñados para ser ejecutados por máquinas.

Algoritmo Programa
Definición Instrucciones para describir la ejecución de una tarea por parte de máquinas o humanos. Instrucciones para describir la ejecución de una tarea en una computadora.
Características
  • Precisión.
  • Finitud.
  • Definición.
  • Legibilidad.
  • Estabilidad.
  • Rapidez.
  • Usabilidad.
  • Actualización.
Tipos
  • Cualitativos.
  • Cuantitativos.
  • Computacionales.
  • No computacionales.
  • Imperativos
  • Declarativos
  • De sistema
  • De aplicación
Ejemplos
  • Recetas.
  • Direcciones.
  • Manuales de artefactos.
  • Código fuente.
  • PHP
  • Java
  • iOs
  • Windows
  • Excel
  • Word

¿Qué es un algoritmo?

Es una secuencia de pasos que se crea con el fin de explicar un proceso que tiene un inicio y un fin. Esta serie de instrucciones debe estar expresada en términos concretos, de tal forma que no quede duda de lo que haya que hacer para que la ejecución sea exitosa.

El término algoritmo viene del griego arithmos (número), y se utiliza comúnmente en la informática, la programación y las matemáticas.

Sin embargo, un algoritmo no solo puede estar expresado en números, sino también con palabras. Cualquier actividad o evento con inicio y final que tenga una serie de pasos lógicos para lograr su ejecución puede ser expresada mediante un algoritmo. Y estos suelen ser representados mediante diagramas de flujo.

Partes de un algoritmo

Todo algoritmo está compuesto por tres partes, que son indispensables para que las instrucciones puedan ejecutarse.

  • Entrada: son los requerimientos esenciales para llevar a cabo las instrucciones.
  • Proceso: se trata del cuerpo de claves, instrucciones o pasos a seguir para ejecutar el algoritmo.
  • Salida: es la resolución o fin del proceso.

Características de los algoritmos

Todo algoritmo debe tener unas características básicas para que se ejecute correctamente.

  • Son precisos: las instrucciones tienen que ser concretas y no pueden dar lugar a ambigüedades.
  • Son finitos: no importa cuántos pasos tenga un proceso, este debe tener un inicio y un fin.
  • Tienen que estar definidos: los algoritmos siempre tienen que dar el mismo resultado, independientemente de las veces que se ejecuten.
  • Describen tres elementos: entrada, proceso y salida.
  • Deben ser legibles: las instrucciones tienen que ser leídas con facilidad.

Tipos de algoritmos

En informática, existen cuatro tipos de algoritmos, clasificados de acuerdo al uso (o no) de cálculos numéricos y dispositivos computacionales

  • Algoritmos cualitativos: no requieren de cálculos numéricos para su ejecución. En su lugar, se deben ejecutar secuencias lógicas. Por ejemplo, una receta o las instrucciones para ensamblar un artefacto.
  • Algoritmos cuantitativos: requieren de cálculos numéricos, como la solución a una ecuación.
  • Algoritmos computacionales: requieren de operaciones numéricas que deben resolverse el uso de un dispositivo de cálculo, como una computadora o calculadora. Ecuaciones de mucha complejidad o códigos que solo pueden ser interpretados por una máquina, son ejemplos de este tipo de algoritmo.
  • Algoritmos no computacionales: no es necesario ejecutar una operación de cálculo, o en su defecto la secuencia puede o debe ser ejecutada por un ser humano. Ejemplos prácticos de algoritmos no computacionales son los cálculos numéricos sencillos, o las instrucciones para llegar a un lugar.

¿Qué es un programa?

Un programa es un conjunto de instrucciones o algoritmos diseñados para ser interpretadas y ejecutadas por una computadora. Aunque se suele usar el término software somo sinónimo, la realidad es que un programa es solo una parte del software, y este a su vez está compuesto no solo por programas, sino por bases de datos y otro tipo de archivos.

Las instrucciones o comandos de un programa están escritos en lenguaje de programación, y según el lenguaje utilizado estos pueden ejecutarse directamente en la computadora (como todos los programas .exe del sistema operativo Windows) o necesitar de un intérprete. En este caso, se habla de compilación, que es el proceso de "traducir" el lenguaje de programación con el ha sido escrito el programa al lenguaje máquina del dispositivo en el que se ejecutará.

Características de un programa

Se espera que todo programa cumpla con estas características para que pueda funcionar de manera eficiente.

  • Estabilidad: un programa debería ejecutar su tarea sin fallar, y si esto llegara a ocurrir, debería tener opciones de recuperación de los datos.
  • Rapidez: el programa debería ejecutarse en un tiempo razonable y sin interferir con otras instrucciones.
  • Usabilidad: un programa tiene que ser fácil de comprender y de utilizar por el usuario.
  • Actualización: todo programa debería mejorarse continuamente a nuevas versiones que se adapten a las necesidades del dispositivo y del usuario.

Tipos de programas

Los programas pueden clasificarse en dos tipos: según su tipo de lenguaje de programación y según sus funciones o tareas.

Programas según su tipo de lenguaje de programación

En el ámbito de la programación existen dos paradigmas: imperativos y declarativos.

  • Programas de lenguaje imperativo: en este caso, las instrucciones se ejecutan siguiendo una secuencia. Este tipo de programas están descritos de tal forma que las condiciones o pasos a seguir permitan su modificación para poder ejecutar una tarea. Lenguajes como Java y PHP pertenecen a esta categoría.
  • Programas de lenguaje declarativo: los comandos están descritos en forma de declaraciones que, si bien permiten entender el problema a resolver, no asigna una secuencia de pasos para resolverlo. Y a diferencia de los programas imperativos, no pueden ser modificados. Scala y Elixir son dos tipos de programas declarativos.

Programas según sus funciones

Dependiendo de las tareas que ejecute, un programa puede ser de sistema o de aplicación.

  • Programas de sistema: son el conjunto de comandos necesarios para ejecutar todas las funciones de una computadora. Además, son los que permiten controlar o intercambiar datos con el hardware, o elementos físicos de la computadora. El sistema operativo Windows en un conjunto de programas de sistema.
  • Programas de aplicación: su función es ejecutar tareas específicas que faciliten el uso del dispositivo por parte del usuario. Pueden estar incluidas en el software de sistema o se pueden instalar por separado. Los procesadores de texto (como Word), las hojas de cálculo y el editor de imágenes son algunos programas de aplicación.