1.1 Del mundo real a la solución por computadora 15 procesador y que disponemos del tiempo suficiente para llevarlo a cabo. En realidad, encargamos a la computadora la ejecución de los pasos que componen un algoritmo porque es capaz de completarlo en un tiempo mucho menor del que nosotros emplearíamos, y porque la computadora es menos proclive a cometer errores que nosotros, quienes por distracción o cansancio erramos habitualmente. Sin embargo, las computadoras sólo pueden ejecutar algoritmos que se componen de acciones que puede entender. Por lo tanto, es necesario conocer bien cuáles son dichas acciones para diseñar algoritmos bien escritos. Saber cuál es el algoritmo que resuelve un problema dado, suele ser un paso difícil para todo aquel que no tenga práctica en el tema. Para escribir algoritmos, el primer paso necesario es plantear cuál sería la solución del problema en términos comunes, en palabras habituales, haciendo uso de todo lo que esté a nuestro alcance, la imaginación, la matemática, el dibujo, el intercambio de ideas, la lógica. No existe una técnica establecida para encarar la solución de un problema. La íntima asociación entre el proceso de descubrimiento de algoritmos y el de resolución de problemas, en general ha hecho que los científicos de la computación se unan a otras disciplinas en la búsqueda de mejores técnicas para resolverlos. Pero la capacidad para resolver problemas sigue siendo más una aptitud artística que debe desarrollarse individualmente, que una ciencia precisa por aprender. 1.1.4 El modelo computacional Para encarar la resolución de un problema por computadora hay que considerar como punto de partida que el procesamiento de la información lleva en sí el hecho de tomar datos, elaborarlos y emitir resultados de acuerdo a dichos datos y a la lógica del proceso que se está ejecutando en ese momento. Por lo tanto, se puede pensar en un modelo computacional compuesto de tres partes: ENTRADA, PROCESO y SALIDA, como se muestra en la Figura 2. Una vez entendido el problema hay que desentrañar del enunciado los datos necesarios para comenzar el proceso de resolución, abstrayéndose del proceso de resolución. Habría que preguntarse “¿ Qué necesito para resolver el problema, si yo fuese el procesador?” “¿ Qué datos necesito que me de otra persona para poder obtener la solución del problema?”, y anotarlos como ENTRADA o DATOS.Una vez determinados los datos, se deberá determinar cuál es el/los resultado/s, es decir, qué se obtiene con los datos de entrada y anotarlos como SALIDA o RESULTADOS. A veces pueden ser más fáciles de visualizar los resultados antes que los datos de entrada, en dicho caso habría que preguntarse “¿Para obtener este resultado, qué información necesito?”. Luego se preguntará “¿ Cuáles son los pasos para llegar al resultado partiendo de los datos?”, con lo cual se podrá escribir el PROCESO o ALGORITMO asociado. Por ejemplo, si se desea realizar un algoritmo para calcular el área y el perímetro de un círculo en función de su radio, las diferentes partes del modelo computacional serán: ENTRADA: radio PROCESO: Area= π radio^2 Perímetro= 2 π radio SALIDA: Area y Perímetro El proceso (algoritmo) asociado a este problema será:
16 Introducción a la Informática Dar el valor del radio y guardar ese valor con el nombre R Calcular el área como pi * R * R Calcular el perímetro como 2 * pi * R Informar los resultados de área y perímetro Sin embargo, el proceso (algoritmo) expresado en forma coloquial no puede ser entendido por la computadora. Por lo cual habrá que escribirlo siguiendo reglas especiales que la computadora entienda. Vale la pena observar que la relación entre entrada, proceso y salida no es algo que necesaria- mente se realice en este orden: primero ingresar todos los datos, luego procesarlos, y por último exhibir todos los resultados. P. ej. un algoritmo puede solicitar la entrada de algunos datos, obtener ciertos resultados, y en base a esto pedir nuevos datos y mostrar otros resultados sobre la marcha del proceso. 1.1.5 Datos e información Por último, describiremos la diferencia que existe entre Datos e Información, términos que se pueden pensar como sinónimos. En el ambiente de la Informática, el término información puede aplicarse a casi cualquier cosa que pueda comunicarse, tenga o no valor. Los datos, en principio, son información no elaborada, que una vez procesados (compara- dos, ordenados, sumados, etc.) constituyen información útil. Según esto, las palabras, los números, las imágenes de este libro son símbolos que representan datos. Si subrayase una frase, se añadirá información a la página. En una dada situación problemática se puede disponer de muchos datos, de los cuales sólo algunos pueden ser útiles para la resolución del problema, es decir, considerados información útil. Entonces podemos decir que la información es el conocimiento producido como resultado del procesamiento de los datos. Otro término que se utiliza es Tratamiento de la información, referido al conjunto de op- eraciones que se realizan sobre una dada información. Esto es “lectura de datos”, “preservar datos”, “comparar datos”, “procesar aritméticamente datos”, “presentar resultados”. Una adecua- da combinación de estas operaciones lleva a resolver los problemas.En el subcapítulo siguiente comenzaremos a formalizar lo vertido en esta sección. 1.2 Algoritmos En el presente capítulo desarrollaremos el concepto de algoritmo, base de la temática de este libro. 1.2.1 Qué es un algoritmo? El término algoritmo deriva del nombre del matemático persa Abu Ja’far Mohammed ibn Musa Al-Khwarizm (Mohammed, padre de Ja’far, hijo de Moisés, nacido en Khowarizm), el cual vivió alrededor del año 825 después de Cristo. Al-Khowarizm escribió tratados de Aritmética y
Created with BuildVu