Unidad 2 desarrollo de lógica algorítmica INTRODUCCION Se denomi denomina na algori algoritmo tmo a un grupo grupo finito finito de operac operacion iones es organi organizad zadas as de manera lógica y ordenada que permite solucionar un determinado problema problema.. Se trata de una serie de instrucciones o reglas establecidas que, por medio de una sucesión de pasos, permiten arribar a un resultado r esultado o solución. Según los expertos en matemática, los algoritmos permiten trabajar a partir de un esta estado do bási básico co o inic inicia iall y, tras tras segu seguir ir los los paso pasos s prop propue uest stos os,, lleg llegar ar a una solución solución.. Cabe resaltar que, si bien los algoritmos suelen estar asociados al ámbito matemático (ya que permiten, por citar casos concretos, aeriguar el cociente entre un par de d!gitos o determinar cuál es el máximo común diisor entre dos cifras pertenecientes al grupo de los enteros", aunque no siempre implican la presencia de números. #simismo tampoco podemos pasar por alto que los algoritmos se pueden expresar a tra$s de lenguajes de programación, pseudocódigo, el lenguaje natural y tambi$n a tra$s de los conocidos como diagramas de flujo. %n manual de instrucciones para el funcionamiento de un electrodom$stico y una serie de órdenes órdenes del jefe a un empleado empleado para desarrollar desarrollar una cierta tarea tambi$n pueden incluir algoritmos. &sta &sta amplitu amplitud d de signif significa icado do permite permite apreci apreciar ar que no exist existe e una defini definició ción n formal y única de algoritmo. &l t$rmino suele ser se'alado como el número fijo de pasos necesarios para transformar información de entrada (un problema" en una salida (su solución". e todas formas, algunos algoritmos carecen de final o no resuelen un problema en particular. &xis &xiste ten n cier cierta tas s prop propie ieda dade des s que que alca alcanz nzan an a todo todos s los los algo algori ritm tmos os,, con con excepción de los denominados algoritmos paralelos) el tiempo secuencial (los algori algoritmo tmos s funcio funcionan nan paso paso a paso", paso", el estado estado abstr abstract acto o (cada (cada algori algoritmo tmo es independiente de su implementación" y la exploración acotada (la transición entre estados queda determinada por una descripción finita y fija". Cabe Cabe menc mencio iona narr por por últi último mo que que los los algo algori ritm tmos os son son muy muy impo import rtan ante tes s en la informática informática ya ya que permiten representar datos como secuencias de bits. %n programa es un algoritmo que indica a la computadora computadora qu$ qu$ pasos espec!ficos debe seguir para desarrollar una tarea.
2.1 Metodología para la solución de problemas &l proceso de resolución de un problema con una computadora conduce a la escritura de un programa y su ejecución en la misma. #unque el proceso de dise'ar programas es esencialmente un proceso creatio, se pueden considerar una serie de fases o pasos comunes, que generalmente deben seguir todos los programadores.
&stas etapas son las siguientes) efinición del problema. #nálisis de los datos. ise'o de la solución. Codificación. *rueba y depuración. ocumentación. +antenimiento. Definición del problema. • • • • • • •
&stá dada en s! por el enunciado del problema, el cual debe ser claro y complejo. &s importante que conozcamos exactamente que se desea obtener al final del proceso- mientras esto no se comprenda no puede pasarse a la siguiente etapa.
Análisis de los datos. *ara poder definir con precisión el problema se requiere que las especificaciones de entrada y salida sean descritas con detalle ya que esto es un requisito para lograr una solución eficaz. %na ez que el problema /a sido definido y comprendido, deben analizarse los siguientes aspectos) • • •
0os resultados esperados. 0os datos de entrada disponibles. 1erramientas a nuestro alcance para manipular los datos y alcanzar un resultado (fórmulas, tablas, accesorios diersos".
%na medida aconsejable para facilitar esta etapa consiste en colocarnos en lugar de la computadora deduciendo los elementos que necesitaremos para alcanzar el resultado.
Diseño de la solución.
%na computadora no tiene capacidad para solucionar problemas más que cuando se le proporcionan los sucesios pasos a realizar, esto se refiere a la obtención de un algoritmo que resuela adecuadamente el problema. &n caso de obtenerse arios algoritmos, seleccionar uno de ellos utilizando criterios ya conocidos. &sta etapa incluye la descripción del algoritmo resultante en un lenguaje natural, de diagrama de flujo o natural de programación. Como puede erse, solo se establece la metodolog!a para alcanzar la solución en forma conceptual, es decir sin alcanzar la implementación en el sistema de cómputo. e acuerdo al ejemplo 2.3 tenemos que la información proporcionada constituye su entrada y la información producida por el algoritmo constituye su salida. 0os problemas complejos se pueden resoler más eficazmente por la computadora cuando se diiden en subproblemas que sean más fácil de solucionar. &l problema de cálculo de la longitud y superficie de un c!rculo se puede descomponer en subproblemas más simples ) • • •
0eer datos de entrada. Calcular superficie y longitud. &scribir resultados (datos de salida".
Codificación. Se refiere a la obtención de un programa definitio que pueda ser comprensible para la máquina. 4ncluye una etapa que se reconoce como compilación. Si la codificación original se realizó en papel, preio a la compilación deberá existir un paso conocido como transcripción.
Prorama !uente &stá escrito en un lenguaje de programación. (pascal, C55,6isual 7ox, 6isual 8asic, etc". •
&s entendible por el programador.
Prorama "#ecutable
&stá en lenguaje máquina. &ntendible por la máquina. Prueba $ depuración. • •
%na ez que se /a obtenido el programa ejecutable, este es sometido a prueba a fin de determinar si resuele o no el problema planteado en forma satisfactoria. 0as pruebas que se le aplican son de diersa !ndole y generalmente dependen del tipo de problema que se está resoliendo. Comúnmente se inicia la prueba de un programa introduciendo datos álidos, inálidos e incongruentes y obserando como reacciona en cada ocasión. &l proceso de depuración consiste en localizar los errores y corregirlos en caso de que estos existan. Si no existen errores, puede entenderse la depuración como una etapa de refinamiento en la que se ajustan detalles para optimizar el desempe'o del programa.
Documentación. ebido a que el programa resultante en esta etapa se encuentra totalmente depurado (sin errores", se procede a la utilización para resoler problemas del tipo que dio origen a su dise'o. &n ista de que esta utilización no podrá ser superisada en todas las ocasiones por el programador, debe crearse un manual o gu!a de operación que indique los pasos a seguir para utilizar el programa.
%antenimiento. Se refiere a las actualizaciones que deban aplicarse al programa cuando las circunstancias as! lo requieran. &ste programa deberá ser susceptible de ser modificado para adecuarlo a nueas condiciones de operación. Cualquier actualización o cambio en el programa deberá reflejarse en su documentación.