Blogger Template by Blogcrowds.

Algoritmo

“En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del latín, dixit algorithmus y éste a su vez del matemático persa Al Juarismi ) es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien lo ejecute.  Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución.” Definición de Wikipedia.

A partir de esta definición formal debemos agregar algunas cosas, la primera es que no hay acuerdo generalizado respecto de la definición de lo que es un algoritmo.  La segunda es que creo por experiencia que un acercamiento inicial al concepto es que un algoritmo es la secuencia de pasos necesarios para resolver un problema.

Desde el punto de vista de la programación debemos tener en cuenta:

  • Si no hay un problema que resolver no es necesario un algoritmo
  • Si no es posible identificar claramente los pasos a seguir para resolver un problema no es posible construir un algoritmo

No quiero decir que no hay problemas que no tienen solución sino que mientras no podamos identificar tanto el problema a resolver, no podremos definir los pasos para resolverlo y sin estas dos cosas no es posible crear un programa.

Por último, para crear un algoritmo debemos definir claramente el problema a resolver.

Programa...

Esta palabra es fuente de muchas confusiones al momento de iniciarse en el mundo de la programación, ya que se refiere al menos a dos cosas que son distintas.
Primero programa se refiere a un producto, software o "cosa" que realiza tareas en el computador, desde tareas tan simples como mostrar la hora hasta asuntos tan complejos como podría ser la creación de textos o video. Dentro de esta categoría está todo lo que hace que un sistema operativo (linux, winodws, OSX, Unix, etc) haga lo que hace, mostrar la hora, listar los documentos que hemos escrito, el escritorio es un programa, una ventana es un programa, el puntero del mouse que se mueve por la pantalla es un programa, etc.
Luego en la segunda categoría está el código fuente o texto que escribimos para realizar alguna acción. Este "código fuente" tiene características específicas del lenguaje en que se esté programando (C, Pastal, Cobol, PHP, Ruby, Perl, entre muchos otros son lenguajes de programación).