Francisco Das Flores Fernando Hernndez Polo METODOS PARA RESOLVER UN PROBLEMA Algoritmo, Diagrama de flujo, Pseudocdigo.
pg. 1 METODOS PARA RESOLVER UN PROBLEMA Contenido FORMAS DE RESOLVER PROBLEMAS ............................................................................. 2 Algoritmo .................................................................................................................................... 2 Qu es un algoritmo? .............................................................................................................. 2 Un poco de historia ............................................................................................................ 2 Para qu es importante conocer la algoritmia? ................................................................... 2 Caractersticas de un algoritmo................................................................................................ 3 Elementos: ................................................................................................................................... 3 Diagrama de flujo ......................................................................................................................... 4 Simbologa: .................................................................................................................................... 5 Polticas: ........................................................................................................................................ 5 Recursividad .................................................................................................................................. 6 Pseudocdigo ........................................................................................................................... 6 Qu es el pseudocdigo? ....................................................................................................... 6 Objetivo: ....................................................................................................................................... 7 Elementos del Pseudocdigo ................................................................................................... 7 Variables .................................................................................................................................. 7 Condiciones del Pseudocdigo ............................................................................................ 7 Ciclos ........................................................................................................................................ 8 Bibliografa .................................................................................................................................... 8 Tabla de Ilustraciones.................................................................................................................... 8
pg. 2 METODOS PARA RESOLVER UN PROBLEMA FORMAS DE RESOLVER PROBLEMAS Algoritmo Qu es un algoritmo? -Trazar un plan. El concepto intuitivo de algoritmo (procedimientos y reglas) se puede encontrar en procesos naturales de los cuales muchas veces no se es consciente. Por ejemplo, el proceso digestivo es un concepto intuitivo de algoritmo con el que se convive a diario sin que haga falta una definicin matemtica del mismo. Procesos, rutinas o biorritmos naturales como la gestacin, las estaciones, la circulacin sangunea, los ciclos csmicos, etc., son algoritmos naturales que generalmente pasan desapercibidos. La rama del saber que mayor utilizacin ha hecho del enfoque algortmico es las matemticas. Un poco de historia Durante miles de aos el ser humano se ha esforzado por abstraer la estructura de la solucin de problemas con el fin de determinar claramente cul es el camino seguro, preciso y rpido que lleva a esas soluciones. Son abundantes los ejemplos: mximo comn divisor, teorema de Pitgoras, reas de figuras geomtricas, divisin, suma de nmeros fraccionarios, etc. Todos estos algoritmos matemticos independizan los datos iniciales del problema de la estructura de su solucin, lo que permite su aplicacin con diferentes conjuntos de datos iniciales (variables). En el mbito de la computacin, los Algoritmos son una herramienta que permite describir claramente un conjunto finito de instrucciones, ordenadas secuencialmente y libres de ambigedad, que debe llevar a cabo un computador para lograr un resultado previsible. En resumen un algoritmo es una secuencia ordenada de instrucciones, pasos o procesos que llevan a la solucin de un determinado problema. Para qu es importante conocer la algoritmia? Desarrollamos nuestra lgica, aplicable a todas las reas, a todas las carreras y aspectos de nuestra vida Ejemplo: Un procedimiento que realizamos varias veces al da consiste en lavarnos los dientes. Veamos la forma de expresar este procedimiento como un Algoritmo: 1. Tomar la crema dental 2. Destapar la crema dental 3. Tomar el cepillo de dientes
pg. 3 METODOS PARA RESOLVER UN PROBLEMA 4. Aplicar crema dental al cepillo 5. Tapar la crema dental 6. Abrir la llave del lavamanos 7. Remojar el cepillo con la crema dental 8. Cerrar la llave del lavamanos 9. Frotar los dientes con el cepillo 10. Abrir la llave del lavamanos 11. Enjuagarse la boca 12. Enjuagar el cepillo 13. Cerrar la llave del lavamanos 14. Secarse la cara y las manos con una toalla Caractersticas de un algoritmo Un Algoritmo debe ser: Realizable: El proceso algortmico debe terminar despus de una cantidad finita de pasos. Se dice que un algoritmo es inaplicable cuando se ejecuta con un conjunto de datos iniciales y el proceso resulta infinito o durante la ejecucin se encuentra con un obstculo insuperable sin arrojar un resultado. Comprensible: Debe ser claro lo que hace, de forma que quien ejecute los pasos (ser humano o mquina) sepa qu, cmo y cundo hacerlo. Debe existir un procedimiento que determine el proceso de ejecucin. Preciso: El orden de ejecucin de las instrucciones debe estar perfectamente indicado. Cuando se ejecuta varias veces, con los mismos datos iniciales, el resultado debe ser el mismo siempre. La precisin implica determinismo. Elementos: Vocabulario: vocablos precisos, adverbios formales, etc. Los algoritmos no admiten ningn tipo de ambigedad ya que los lenguajes de programacin tienen un vocabulario restringido y preciso. Esto exige la utilizacin de un conjunto determinado de palabras, mandos o primitivas en cualquiera de los procedimientos que se elaboren. Cuando se habla de algoritmos, con frecuencia aparecen tres tipos de pensamiento y se utilizan indiscriminadamente como sinnimos: Pensamiento Computacional, Pensamiento Algortmico y Pensamiento Procedimental. Por lo tanto es importante puntualizar a qu se refiere cada uno de estos pensamientos. Segn Moursund (2006), el pensamiento computacional hace referencia a la representacin y solucin de problemas utilizando inteligencia humana, de mquinas o de otras formas que ayuden a resolver el problema. El pensamiento
pg. 4 METODOS PARA RESOLVER UN PROBLEMA algortmico se refiere al desarrollo y uso de algoritmos que puedan ayudar a resolver un tipo especfico de problema o a realizar un tipo especfico de tarea. Por su parte, el pensamiento procedimental se ocupa del desarrollo y utilizacin de procedimientos diseados para resolver un tipo especfico de problema o para realizar un tipo especfico de tarea, pero que no necesariamente, siempre resulta exitoso. De acuerdo con el Consejo Nacional de Investigacin de Estados Unidos el Pensamiento Algortmico incluye elementos tales como: descomposicin funcional, repeticin (iteracin y/o recursin), organizacin de datos (registro, campo, arreglo, lista, etc), generalizacin y parametrizacin, diseo por descomposicin de un problema en partes ms pequeas y manejables (top-down) y refinamiento.
Una diferencia notoria entre un algoritmo y un programa es que el algoritmo incorpora las caractersticas estructurales bsicas de la computacin, independientemente de los detalles de su implementacin; mientras que un programa tiene un conjunto especfico de detalles para resolver un problema. (Garcia, 2007-2009)
Diagrama de flujo Representa la esquematizacin grfica de un algoritmo. En realidad muestra grficamente los pasos o procesos a seguir para alcanzar la solucin de un problema. Su correcta construccin es sumamente importante porque a partir del mismo se escribe un programa en algn lenguaje de programacin. Diagrama de flujo completo y correcto= el paso del mismo a un lenguaje de programacin es simple y directo.
pg. 5 METODOS PARA RESOLVER UN PROBLEMA Simbologa:
Ilustracin 1: simbologa Polticas: 1.-Todo diagrama de flujo debe tener un inicio y un fin 2.-Las lneas utilizadas para indicar la direccin del flujo del diagrama deben ser rectas, verticales u horizontales; no inclinadas. 3.- todas las lneas utilizadas para indicar la direccin del flujo del diagrama, deben estar conectadas. La conexin puede ser a un smbolo que exprese lectura, proceso, decisin, impresin, conexin o fin del diagrama.
pg. 6 METODOS PARA RESOLVER UN PROBLEMA 4.- El diagrama debe estar construido de arriba hacia abajo (top-down) y/o de izquierda a derecha (right to left) 5.- La notacin utilizada en el diagrama de flujo debe ser independiente del lenguaje de programacin. La solucin presentada puede escribirse posteriormente y fcilmente en diferentes lenguajes de programacin. 6.- No puede llegar ms de una lnea a un smbolo. 7.- A todo proceso le corresponde un flujo de informacin de la misma forma en que sale. 8.- En un rombo de decisin el texto interior deber realizarse en forma de pregunta. En todo momento el flujo de condicin deber desembocar en otra figura. 9.- Toda figura no debe quedar aislada, deber desembocar en otra figura. 10.- El contenido de cada proceso deber ser breve e iniciar con un verbo. 11.- Las flechas de flujo no pueden cruzarse entre s, an si existiese recursividad. Recursividad Es un algoritmo que expresa la solucin de un problema en trminos de una llamada a s mismo, es decir un bucle. (Cairo, 2005) Pseudocdigo Qu es el pseudocdigo? El pseudocdigo es una herramienta utilizada para el diseo de programas que permite al programador expresar sus pensamientos de una forma clara utilizando su lenguaje natural y mostrando el orden de ejecucin de las sentencias del programa sin ninguna ambigedad. En ciencias de la computacin, y anlisis numrico, el pseudocdigo (o falso lenguaje) es una descripcin de alto nivel compacta e informal del principio operativo de un programa informtico u otro algoritmo. Utiliza las convenciones estructurales de un lenguaje de programacin real, pero est diseado para la lectura humana en lugar de la lectura mediante mquina, y con independencia de cualquier otro lenguaje de programacin. Se utiliza pseudocdigo pues este es ms fcil de entender para las personas que el cdigo del lenguaje de programacin convencional, ya que es una descripcin eficiente y con un entorno independiente de los principios fundamentales de un algoritmo.
pg. 7 METODOS PARA RESOLVER UN PROBLEMA Se utiliza comnmente en los libros de texto y publicaciones cientficas que se documentan varios algoritmos, y tambin en la planificacin del desarrollo de programas informticos, para esbozar la estructura del programa antes de realizar la efectiva codificacin. (Alvarez, 2007) Objetivo: Representar la solucin a un algoritmo de la forma ms detallada posible, y a su vez lo ms parecida posible al lenguaje que posteriormente se utilizara para la codificacin del mismo. Ejemplo 1Para hallar el rea de un tringulo, conocida la base y la altura 2Definicin del problema: 3Entrada: base*altura Proceso: base*altura/2 Salida: rea 4rea de un tringulo 5Inicio 6Declaracin de variables 7base, altura, rea 8Escribir ("Ingrese el valor de base y altura respectivamente") 9Leer (base, altura) 10Proceso 11a=base*altura/2 12Salida 13Escribir ("El resultado es: ", rea) 14Fin
Elementos del Pseudocdigo Variables Representar elementos, acciones, cosas, procesos, datos o informacin relevante del problema a resolver. Tipos de Datos: Los tipos de datos existentes en pseudocdigo son: Entero, Real; Carcter, Cadena; Booleano. Condiciones del Pseudocdigo Estas condiciones se utilizan cuando el usuario programa en un lenguaje de alto nivel. Comenzaremos con la ms famosa, la sentencia SI - SINO - FINSI Tipos de condiciones:
pg. 8 METODOS PARA RESOLVER UN PROBLEMA Simple: Expresin booleana. Doble: Si la condicin es verdadera se ejecuta un bloque de instrucciones, sino se ejecuta otro bloque. Mltiple: Expresado como Si-Entonces-SinoSi-Entonces-Sino-FinSi-FinSi; Si la primera condicin es verdadera, se ejecutar el primer bloque de instrucciones, sino se verifica una segunda condicin y si esta es verdadera se ejecutara un segundo bloque de instrucciones y as sucesivamente Mltiple casos: En este caso hay una variable o condicin pero hay opciones, se compara el valor de la variable y si coincide con alguna de las opciones se ejecutar el bloque de instrucciones correspondiente.
Ciclos Estructuras de control repetitivo, en la que una sentencia o grupo de sentencias se repiten muchas veces, a estas sentencias se les denomina bucle. Algunos ciclos en seudocdigo: Mientras: mientras la condicin sea cierta se seguir repitiendo el conjunto de sentencias. Repetir: El conjunto de sentencias se repite hasta que la condicin sea cierta. Para: Se utiliza cuando se quiere iterar un determinado nmero de veces un conjunto de instrucciones, utilizando de ndice una variable que se incrementa o decrementa. (Romero, 2011) Bibliografa Alvarez, S. (9 de Febrero de 2007). desarrolloweb.com. Obtenido de desarrolloweb.com: http://www.desarrolloweb.com/articulos/pseudocodigo.html Cairo, O. (2005). Metodologa de la programacin. Mxico: Alfaomega. Garcia, J. C. (2007-2009). Algoritmos y Programacin. Fundacin Gabriel . Romero, C. (2008 de Abril de 2011). slideshare. Obtenido de slideshare: http://es.slideshare.net/CesarRomero4/pseudocdigo
Tabla de Ilustraciones Ilustracin 1: simbologa ............................................................................................................... 5