1.2 Algoritmos 19
Por ejemplo los ingredientes son el ambiente en la receta de cocina.
Acción es un evento que modifica el ambiente.
Descripto el ambiente de un problema, una acción sobre ese ambiente es un hecho de
duración finita por el cual, a partir de un estado inicial, se obtiene un nuevo estado final. Por
ejemplo, en la acción “pelar las papas”, el estado inicial es: las papas sin pelar y el estado final,
las papas peladas.
1.2.5 Acción primitiva y no primitiva
A continuación veremos cuáles son las acciones primitivas y cuáles no lo son.
Las acciones primitivas son las que el procesador puede interpretar y ejecutar.
Pero, ¿qué sucedería si ese procesador no entiende una acción determinada? Específicamente
esa acción no pertenece a su lenguaje. Habrá que modificarla de tal manera que pueda ser escrita
en términos entendibles por el procesador. En muchos casos este tipo de acciones deben ser
descompuestas en tareas más detalladas para lograr el efecto que se desea.
Por ejemplo en nuestro algoritmo culinario, podría ser el caso que un determinado procesador no
sepa de que se trata la tarea: “Batir huevos en un bols” y haya que explicárselo con más detalles.
La acción no primitiva debe ser descompuesta en acciones primitivas.
Existen diferentes técnicas para descomponer acciones no primitivas en acciones primitivas.
Uno de estos métodos se denomina Top-Down o de refinamientos sucesivos, y será el que
usaremos en este libro.
Este método parte de una idea general de resolución y luego va descomponiendo las tareas
hasta conseguir una secuencia de acciones primitivas que permitan al procesador resolverla.
Se concluye pues que se debe escribir un algoritmo que resuelva el problema dado, y que
luego deberá ser adaptado al procesador que lo va a ejecutar. Por ello, frente a un problema
debemos saber quien será el procesador y escribir una solución que pueda entender y ejecutar.
En este libro planteamos que el procesador será la computadora equipada con algún lenguaje
específico.
La computadora puede trabajar con distintos lenguajes. Sin embargo, para un gran número
de tareas de uso corriente, las acciones primitivas son similares en los distintos lenguajes, lo que
permite desarrollar algoritmos que sean independientes del lenguaje e incluso de la máquina que
los va a ejecutar.
1.2.6 Programa
Definiremos qué se entiende por el término programa.
Un programa es un conjunto de acciones que puede entender y ejecutar una computadora.
Otra definición podría ser: “es un algoritmo traducido a algún lenguaje que pueda ser
entendido por una computadora para poder ejecutarlo”. Cada acción del programa se denomina
instrucción.