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.
Created with BuildVu