You are on page 1of 8

OBJETIVO EDUCACIONAL

Comprender el concepto de algoritmo. Conocer la terminologa y reglas relacionada con los algoritmos. Aplicar un lenguaje algortmico grfico.

ACTIVIDADES DE APRENDIZAJE
3.1 Elaborar una sntesis referente a la terminologa y reglas relacionada con los algoritmos. 3.2 Disear una solucin de problema utilizando los distintos tipos de algoritmos estudiados.

FUNDAMENTOS DE PROGRAMACIN

TCNICAS DE DISEO DETALLADO

3.1 DISEO ALGORTMICO La palabra algoritmo se deriva de la traduccin al latn de la palabra rabe Alkhowarizmi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IX. Algoritmo Es una serie de operaciones detalladas a ejecutar paso a paso, que conducen a la resolucin de problemas. Es un conjunto de reglas para resolver determinado problema describiendo de forma lgica su solucin. Cada una de las acciones de que consta un algoritmo es denominada sentencia y stas deben ser escritas en trminos de cierto lenguaje comprensible para el computador, que es el lenguaje de programacin. Para disear un algoritmo se debe comenzar por identificar las tareas ms importantes para resolver el problema y disponerlas en el orden en que han de ser ejecutadas. Un algoritmo es caracterizado porque sigue un proceso de ejecucin comn y lgico, describiendo textualmente paso a paso cada una de las actividades a realizar dentro de una actividad determinada. Algoritmo para asistir a clases: 1. Levantarse 2. Baarse 3. Vestirse 4. Desayunar 5. Cepillarse los dientes

6. Salir de casa 7. Tomar el autobs 8. Llegar al ITM 9. Buscar el aula 10. Ubicarse en un asiento

Las caractersticas ms relevantes de los algoritmos son: Finito: Un algoritmo debe siempre terminar despus de un nmero finito de pasos. Definido: Cada paso de un algoritmo debe ser definido en forma precisa, estableciendo las acciones que van a efectuar clara y rigurosamente en cada caso. Entradas: El algoritmo tiene cero o ms entradas, es decir cantidades que se entregan inicialmente al algoritmo antes de su ejecucin. Salidas: Un algoritmo tiene unas o ms salidas, es decir cantidades que tiene una relacin especfica respecto a las entradas. Efectivo: Generalmente, tambin se espera que un algoritmo sea efectivo. Esto significa que todas las operaciones ha ser realizadas en el algoritmo deben ser 10 suficientemente bsicas de modo que puedan en principio ser llevadas a cabo en forma exacta y en un perodo de tiempo finito por una persona usando lpiz y papel (rutear).

52

CAPTULO 3

TECNICAS DE DISEO DETALLADO

FUNDAMENTOS DE PROGRAMACIN

Entrada

Proceso

Salida

Fig. 3.1 Partes de un Algoritmo

Existen una serie de smbolos y reglas que se utilizan para describir de manera explicita un proceso, estos lenguajes algortmicos pueden ser: Grficos: Es la representacin grfica de las operaciones que realiza un algoritmo (diagrama de flujo). No Grficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocdigo). Para su elaboracin se siguen ciertas reglas: Se deben usar solamente lneas de flujo horizontales y/o verticales. Se debe evitar el cruce de lneas utilizando los conectores. Se deben usar conectores slo cuando sea necesario. No deben quedar lneas de flujo sin conectar. Se deben trazar los smbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha. Todo texto escrito dentro de un smbolo deber ser escrito claramente, evitando el uso de muchas palabras.

3.1.1 Elementos y Reglas de la Representacin Grafica de los Algoritmos Un diagrama de flujo es la representacin grfica de la solucin algortmica de un problema. Para disearlos se utilizan determinados smbolos o figuras que representan una accin dentro del procedimiento. Utilizan unos smbolos normalizados, con los pasos del algoritmo escritos en el smbolo adecuado y los smbolos unidos con flechas, denominadas lneas de flujo, que indican el orden en que los pasos deben ser ejecutados. El traducir una descripcin narrada a diagrama de flujo agrega claridad y precisin a la descripcin de una tarea. Adems, al elaborar el diagrama de flujo, se descubren situaciones que no haban sido consideradas. En la actualidad se emplean poco, pero resultan muy tiles y pedaggicos cuando se comienza en el estudio de la programacin. En la elaboracin de stos, la simbologa juega un papel muy importante, ya que debe estar adecuada a ciertos estndares, con el fin de que sea entendida por cualquier persona dedicada al
CAPTULO 3 53

FUNDAMENTOS DE PROGRAMACIN

TCNICAS DE DISEO DETALLADO

campo de la computacin. Cada una de las figuras representa una etapa en la solucin del problema; dentro de ellas se anotan indicaciones. Los smbolos utilizados han sido normalizados por el Instituto Norteamericano de Normalizacin (ANSI) y los ms frecuentemente son: Simbolo
Descripcin Inicio o fin de proceso: Indica el inicio o el fin de un diagrama de flujo dentro de la figura se debe escribir "inicio" o fin; segn sea el caso. Entrada / salida de informacin: Representa la entrada y salida de datos en la computadora. Acciones u operaciones: Se utilizan para sealar las actividades, los pasos o las instrucciones en forma secuencial. Decisin: Permite decidir entre 2 o ms opciones o caminos a seguir. Subrutinas: Se utiliza para representar los subprogramas. Conector: Indica la continuidad del diagrama de flujo en una misma pgina. Dentro de la circunferencia se anota un nmero o una letra. Conector de pagina: Indica la continuacin del diagrama de flujo de una pgina a otra. Se debe especificar con letra o nmero esta secuencia. Salida (impresin): Indica un resultado mostrado como consecuencia del proceso llevado a cabo. Salida (pantalla): Indica la salida de informacin en la pantalla o monitor. Entrada (teclado): Se utiliza en ocasiones en lugar del smbolo de Entrada/Salida de informacin. Lneas de flujo: Indican el sentido o direccin que lleva el diagrama de flujo desde su inicio hasta su fin.
Tabla 3.1 Simbologa de los diagramas de flujo

54

CAPTULO 3

TECNICAS DE DISEO DETALLADO

FUNDAMENTOS DE PROGRAMACIN

Ventajas de usar diagramas de flujo. Rpida comprensin de las relaciones Anlisis efectivo de las diferentes secciones del programa Pueden usarse como modelos de trabajo en el diseo de nuevos programas o sistemas Comunicacin con el usuario Documentacin adecuada de los programas Codificacin eficaz de los programas Depuracin y pruebas ordenadas de programas

Desventajas de los diagramas de flujo Diagramas complejos y detallados suelen ser laboriosos en su planteamiento y diseo. Acciones a seguir tras la salida de un smbolo de decisin, pueden ser difciles de seguir si existen diferentes caminos. No existen normas fijas para la elaboracin de los diagramas de flujo que permitan incluir todos los detalles que el usuario desee introducir. Lento de crear y difcil de modificar sin un nuevo dibujo.

En la figura 3.2 se muestra el ejemplo de un diagrama de flujo, utilizando cinco smbolos, donde el primero y el ltimo indican el inicio y el fin del diagrama respectivamente; el segundo la entrada de informacin de dos datos; el tercero un proceso, en este caso, la suma de los dos datos ledos; y por ltimo la impresin de la variable correspondiente al resultado.
inicio

a,b

c=a+b

fin

Figura 3.2

Representacin de Diagrama de Flujo.

CAPTULO 3

55

FUNDAMENTOS DE PROGRAMACIN

TCNICAS DE DISEO DETALLADO

3.1.2 Implementacin De Algoritmos Secuenciales (Utilizando Notacin Algebraica) El pseudocdigo (Pseudo = falso) es un lenguaje artificial e informal que ayuda a los programadores a desarrollar algoritmos. El pseudocdigo es similar al lenguaje cotidiano; es cmodo y amable con el usuario, aunque no es realmente un verdadero lenguaje de computadora. El pseudocdigo no es realmente un cdigo sino una imitacin y una versin abreviada de instrucciones reales para las computadoras Los programas en pseudocdigo no se ejecuta realmente en las computadoras; ms bien, ayudan al programador a razonar un programa antes de intentar escribirlo en un lenguaje de programacin como Java. Un programa en pseudocdigo cuidadosamente preparado puede convertirse fcilmente en un programa Java correspondiente [1]. Es una tcnica para diseo de programas que permite definir las estructuras de datos, las operaciones que se aplicarn a los datos y la lgica que tendr el programa de computadora para solucionar un determinado problema. Ventajas de utilizar un pseudocdigo a un diagrama de flujo Ocupa menos espacio en una hoja de papel Permite representar en forma fcil operaciones repetitivas complejas Es muy fcil pasar de pseudocdigo a un programa en algn lenguaje de programacin Si se siguen las reglas se pueden observar claramente los niveles que tienen cada operacin

3.2 DISEO ALGORTMICO DE LAS FUNCIONES La solucin a un problema complejo puede requerir muchos pasos y el sistema mas idneo en ese caso, pasa por dividir el problema en subproblemas mas fciles de resolver que el principal. Este mtodo se suele denominar, divide y vencers (divide and conquer) y es aplicable a la resolucin y escritura de algoritmos y programas para computadora. La idea de algoritmo es natural como la vida misma, ya que siempre encierra una secuencia de pasos exentos de ambigedades que lleva a la solucin de problemas [2]. Algunos ejemplos clsicos son los siguientes [3]: Ejemplo 1: Realizar el algoritmo para cruzar una calle por un paso de peatones. Inicio Mirar a la izquierda y a la derecha Mientras pasan coches esperar mirar a la izquierda y a la derecha fin mientras Cruzar la calle Fin
56 CAPTULO 3

TECNICAS DE DISEO DETALLADO

FUNDAMENTOS DE PROGRAMACIN

Ejemplo 2: Algoritmo para cocinar un huevo duro. Inicio Llenar un cazo con agua Encender el fuego de la estufa Poner el cazo al fuego Repetir la accin esperar Hasta que hierva el agua Introducir el huevo en el cazo Esperar 10 minutos Apagar el fuego Tirar el agua Extraer el huevo del cazo Fin Ejemplo 3: Disear un algoritmo para cambiar la llanta de un coche. Inicio comprobar el estado del gato si el gato del coche esta averiado entonces llamar ala estacin de servicio sino meter el gato en su alojamiento repetir la operacin siguiente aflojar los tornillos de las ruedas hasta que todos los tornillos estn aflojados quitar los tornillos quitar la rueda poner rueda de repuesto y tornillos bajar el gato repetir apretar lo tornillos hasta que esten apretados todos los tornillos fin si fin En la prctica, para evaluar un buen algoritmo se considera el tiempo que requiere su ejecucin, esto puede ser expresado en trminos del nmero de veces que se ejecuta cada paso. Otros criterios de evaluacin pueden ser la adaptabilidad del algoritmo al computador, su simplicidad y elegancia, etc. Algunas veces se tienen varios algoritmos para solucionar el mismo problema, y se debe decidir cual es el mejor. Esto ltimo conduce al Anlisis de Algoritmos.

CAPTULO 3

57

FUNDAMENTOS DE PROGRAMACIN

TCNICAS DE DISEO DETALLADO

REFERENCIAS BIBLIOGRFICAS [1] [2] [3] Deitel & Deitel. 1998. Como programar en Java. Prentice Hall. 1 Edicin. p.63. JoyanesAguilar L. 1990. Problemas de la Metodologa de la Programacin. McGraw Hill. 1 Edicin. pp. 4,5. JoyanesAguilar L. 1990. Problemas de la Metodologa de la Programacin. McGraw Hill. 1 Edicin. pp. 26,27.

58

CAPTULO 3

You might also like