Vous êtes sur la page 1sur 5

Fundamentos de programacin

Algoritmos y diagramas de flujo. Algoritmos 1. Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las operaciones que un computador debe realizar para llevar a cabo una tarea en un tiempo ms finito. [Donald E. Knuth, 1968]. 2. Algoritmo es un conjunto de pasos, procedimientos o acciones que nos permitan alcanzar un resultado o resolver un problema. 3. Es un conjunto de pasos a seguir, con un orden lgico que nos permiten resolver un problema La ejecucin de un algoritmo no debe implicar, normalmente decisiones subjetivas, ni tampoco debe de hacer preciso el uso de la intuicin. Por lo tanto se puede considerar que una receta de cocina es un algoritmo si describe precisamente la forma de preparar un determinado plato, proporcionndonos las cantidades exactas que debe usarse y tambin instrucciones detalladas acerca del tiempo que debe de cocinarse. Pero si la receta tiene instrucciones vagas como colocar sal al gusto, o guese hasta que este medio hecho, esto no es un algoritmo. Caractersticas de un algoritmo: Preciso, porque cada uno de sus pasos debe indicar de manera precisa e inequvoca que se debe hacer. Finito, es decir, si se sigue el algoritmo se debe terminar el algn momento. Definido, es decir, si se sigue un algoritmo dos veces, se debe obtener el mismo resultado. Un algoritmo puede tener cero o ms elementos de entrada, debe producir un resultado. Los datos de salida sern los resultados de efectuar las instrucciones. Pasos para la resolucin de un problema computable: La resolucin de un problema mediante un computador exige al programador: a) Definicin o Anlisis del problema. b) Diseo y verificacin del algoritmo. c) Transformacin del algoritmo en un programa (codificacin). d) Ejecucin del programa. e) Prueba del programa. Anlisis del problema El propsito del anlisis de un problema es ayudar al programador para llegar a una cierta comprensin de la naturaleza del problema. El problema debe estar bien definido si se desea llegar a una solucin satisfactoria. La solucin de un problema debe iniciar por determinar y comprender exactamente en qu consiste ese problema.

Si crees que la educacin es costosa, prueba la ignorancia, Derek Bok

Fundamentos de programacin

Para poder definir con precisin el problema se requiere que las especificaciones de entrada y salida sean descritas con detalles. Al abordar un problema que se quiere resolver mediante un computador, el programador necesita de la experiencia del experto del dominio para entender el problema. Al final, si se quiere llegar a una solucin satisfactoria se necesita que: 1. El problema est bien definido con el mximo detalle 2. Las especificaciones de las entradas y salidas del problema, deben ser descritas detalladamente: Qu datos son necesarios para resolver el problema? Qu informacin debe arrojar la resolucin del problema? Datos de entrada: Los datos iniciales que posee el algoritmo antes de ejecutarse. Proceso:Acciones que lleva a cabo el algoritmo. Salida:Datos que obtiene finalmente el algoritmo Ejemplo: calcular el rea de un rectngulo Anlisis del problema: El clculo del rea del rectngulo se puede dividir en: Entrada de datos (altura, base) Proceso:Clculo rea Salida de datos (base, altura, rea) Diseo o desarrollo del Algoritmo. Para poder disear algoritmos es necesario disponer de una notacin, que llamaremos notacin algortmica, la cual debe permitir: Describir las operaciones puestas en juego (acciones, instrucciones, comandos,...) Describir los objetos manipulados por el algoritmo (datos/informaciones) Controlar la realizacin de las acciones descritas, indicando la forma en que estas se organizan en el tiempo. La solucin de un problema complejo puede requerir muchos pasos, es necesario dividir el problema en sub problemas ms sencillos de resolver. Este mtodo se denomina divide y vencers es aplicable a la resolucin y escritura de algoritmos y programas para computadora. Este mtodo de divisin de un problema en otros subproblemas ms sencillos se puede expresar para conseguir su solucin en una computadora, mediante el mtodo denominado diseo descendente.

Si crees que la educacin es costosa, prueba la ignorancia, Derek Bok

Fundamentos de programacin

Escritura inicial del algoritmo Para describir (escribir) un algoritmo consiste en realizar una descripcin paso a paso con un lenguaje natural del citado. Recordemos que un algoritmo es un mtodo o conjunto de reglas para solucionar un problema. Veamos el siguiente ejemplo : Qu hacer para ver la pelcula Tiburn Es muy sencillo, y de forma general la podemos responder asi: Ir al cine. Comprar una entrada (boleto) Ver la pelcula. Regresar a casa. Algoritmo ms detallado: Inicio Ver la cartelera de cines en el peridico Si proyectan Tiburn ir al cine Si hay cola entonces ponerse en ella Mientras haya personas delante suyo Avanzar en la cola Si existen asientos disponibles entonces comprar una entrada encontrar el asiento correspondiente mientras proyectan la pelcula ver la pelcula Sino proyectan Tiburn entonces decidir otra actividad Abandonar el cine Volver a casa Fin Las palabras en negritas describen estructuras de control fundamentales y procesos de toma de decisin en el algoritmo. Estas incluyen los conceptos importantes de seleccin (si-entonces-sino, if-else) y de repeticin (mientras, while-do o repetir-hasta, do-while) La capacidad de decisin permite seleccionar alternativas de accin a seguir o bien la repeticin una y otra vez de operaciones. Ejemplo: si los nmeros de los asientos estn impresos. Herramientas para el diseo del algoritmo Pseudocdigo: es un lenguaje algortmico, muy parecido al espaol pero ms conciso que permite la redaccin rpida del algoritmo. Diagramas de flujo: Es fcil de disear pues el flujo lgico del algoritmo se muestra en un diagrama en lugar de palabras Pseudocdigo: Es un lenguaje de PSeudo programacin, es decir, muy parecido a un lenguaje de programacin. Algunas palabras utilizadas en el pseudocdigo: Inicio Fin Leer Escribir Asignar (x<- y+z)

Si crees que la educacin es costosa, prueba la ignorancia, Derek Bok

Fundamentos de programacin

Ejemplo del seudocdigo para CalculoAreaRectangulo Inicio leer; base, altura area<- base x altura escribir; base, altura, area Diagrama de Flujo: Los siguientes son los principales smbolos para elaborar Diagramas de Flujo: Algunas palabras de seudo- Algunos Smbolos de Diagrama Funcin cdigo de flujo Terminal: representa el comienzo inicio y el final fin de un programa inicio - Fin Leer() Entrada cualquier introduccin de datos en la memoria desde los perifricos entrada/salida Utilizado para presentar la impresin de resultados. Expresa salida

Escribir()

se representa por el smbolo : ej. promediosuma /n

Representado por: si ... entonces Mientras ... hacer ... desde .. Representado por:

Proceso ( cualquier tipo de operacin que pueda originar cambio de valor, formato o posicin de la informacin almacenada en memoria, operaciones aritmtica ) Decisin: Indica las operaciones lgicas o de comparacin entre datos , normalmente dos- normalmente tiene dos salida si o no. Tambin retorno Cclico Decisin Mltiple en funcin del resultado de la comparacin se seguir uno de los diferentes cominos de acuerdo con dicho resultado

En caso.... de

Representado por: -Cualquier palabra en la cual se indique que es una funcin Ej. Raiz Cuadrada(N) o SQRT(N)

Llamada a subrutina o a un proceso predeterminado, una subrutina es un mdulo independiente del programa principal que recibe una entrada procedente de dicho programa, realiza una tarea determinada y regresa al terminar al programa principal

Si crees que la educacin es costosa, prueba la ignorancia, Derek Bok

Fundamentos de programacin

Ejemplo de diagrama

Si crees que la educacin es costosa, prueba la ignorancia, Derek Bok