¿Qué es un algoritmo y qué es un programa?

  • Un algoritmo es la receta para resolver un conjunto de problemas.
  • Es un conjunto de instrucciones que indican paso a paso que hay que hacer.
  • Un algoritmo es conceptual y puede ser descrito usando el lenguaje natural que usamos día a día, diagramas de flujo o pseudocódigo.
  • Un algoritmo puede implementarse en diferentes lenguajes de programación.

Diagramas de flujo

Es una descripción gráfica de un algoritmo utilizando distintas figuras y flechas que las unen. Convenientes para algoritmos simples ya que cuando crecen se convierten en un “diagrama espagueti" difícil de seguir. En la actualidad son poco utilizados.

Pseudocódigo

La idea es una forma intermedia entre usar lenguaje natural y un lenguaje de programación. No posee una forma estricta pero normalmente se respeta:

  1. Se usa el concepto de variable y asignación. Ej: “a <- 5” significa que a la variable a le asignó la constante 5.
  2. Se indican los datos de entrada y de salida
  3. Se utilizan instrucciones condicionales del tipo: “si <condición> entonces <instrucciones> sino <instrucciones>
  4. Se utilizan instrucciones de ciclo como “repetir hasta que ...”

Ejemplo de algoritmo:
Algoritmo para definir si un triángulo es escaleno, isósceles o equilatero
Datos de entrada: lado1, lado2, lado3
Datos de salida: tipo

si lado1 = lado2 y lado1 = lado3
entonces 
	tipo <- equilatero
sino
	si (lado1 = lado2) o (lado1 = lado3) o (lado2 = lado3)
	entonces 
		tipo <- isósceles 
	sino
		tipo <- escaleno

¿Qué es un programa?

Un programa está asociado intrínsecamente a la existencia de una computadora. Las computadoras ejecutan programas. Los programas leen datos desde archivos, bases de datos, redes, teclados, etc y escriben datos en archivos, bases de datos, redes, pantallas, etc.

Los programas son ejecutados por el procesador de la computadora. Para ello tienen que ser cargados en la memoria principal RAM. La carga de los programas en la memoria esta a cargo de un tipo especial de programa o software llamado sistema operativo.

Diferencia entre algoritmo y programa

Aunque pueden confundirse, por ejemplo los dos son un conjunto de instrucciones, representan dos conceptos muy distintos. Un algoritmo es más parecido a una idea, una forma de resolver un problema, mientras que un programa está más ligado a la realización de una o más tareas por una computadora.

Un programa puede implementar uno o varios algoritmos, o puede ser tan simple que la idea de algoritmo es poco aplicable. La tarea de un programador suele empezar diseñando algoritmos para resolver los problemas planteados y luego implementarlos e incluirlos en un programa.

Cuando hablamos de programa siempre existe la idea de que será ejecutado por una computadora mientras que un algoritmo podría ser ejecutado por una persona.

Un programa está escrito en lenguaje máquina o por lo menos en un lenguaje que pueda ser compilado o interpretado por algún tipo de máquina (a veces una máquina virtual).

<< Computadora u Ordenador