Clase de Algoritmos y Diagra_05- Mayo

13
1 Metodología para la Creación de Algoritmos DIAGRAMAS DEFLUJOS Y

description

clases de algoritmos y diagramas de flujo en programación de ingenieria

Transcript of Clase de Algoritmos y Diagra_05- Mayo

  • *Metodologa para la Creacin de Algoritmos

    DIAGRAMAS DEFLUJOS Y

  • *AlgoritmoMtodo que describe la solucin de un problema computacional, mediante una serie de pasos, definidos y finitos Preciso: Indicar el orden de realizacin en cada pasoDefinido: Repetir los pasos n veces y se obtiene el mismo resultadoFinito: Tiene un numero determinado de pasosLa solucin de un algoritmo debe describir 3 partes:- Entrada.- Datos que se necesitan para ejecutarse- Proceso.- Acciones y clculos a realizar- Salida.- Resultado esperado.

  • *Elementos de un ProgramaRestricciones:Instrucciones comprensibles para el ejecutorRealizable desde la situacin del ejecutorNo deben imposibilitar continuar la ejecucinElementos: El Objetivo El Programador Las Instrucciones El EjecutorLa principal razn para que las personas empiecen a programar, es porque se utiliza el computador como una herramienta para solucionar problemas.

  • *Fases en la creacin de algoritmos

    Anlisis.- Ac determinamos que datos forman la entrada del algoritmo y cuales sern de salida Diseo.- Elaboracin del algoritmo Prueba.- se observa si el algoritmo obtiene la salida esperada

  • *Herramientas de un algoritmo

    Se puede utilizar diferentes herramientas tales como: Diagrama de Flujo (Flow Chart)Diagrama N-S (Nassi-Schneiderman)Pseudocodigo

  • *Diagrama de Flujo Un Diagrama de Flujo representa la esquematizacin grfica de un algoritmo.

    Se disea para permitir observar las estructuras y la forma como ellas se conectan entre s al configurar un programa.Diagrama Nassi-Schneiderman (N-S)Tambin conocido como diagrama de Chapin.Similar al Diagrama de Flujo, en el que se omiten los conectores y las cajas son contiguas.

  • *SeudocdigoPara expresar el contenido de un programa de computadora, se requiere el uso de un lenguaje de programacin.

    Cuando expresamos dicho contenido en nuestra lengua natural, utilizando ciertas expresiones simples que lo abrevian un poco, se dice que est escrito en seudocdigo.INICIO LEER A, B C=A+B IMPRIMIR CFIN

  • *Donde se va a hacer?Culminacin del sistema, aunque en realidad nunca termina su proceso .

    PASOS:

    CodificacinCompilacin y EjecucinPrueba y DepuracinDocumentacinMantenimiento

  • *Es la escritura del algoritmo en un lenguaje de programacin (Cdigo Fuente).El cdigo puede ser escrito en cualquier leguaje, ya que el diseo es independiente de este.

    Traduce el programa fuente a programa en cdigo de maquina y lo ejecuta, introduciendo el programa en memoria.Si se presentan errores de sintaxis o de compilacin, se vuelve a editar el programa.Se corrigen los errores y se compila de nuevo hasta que no salgan errores.

    CodificacinCompilacin y Ejecucin

  • *Este paso se realiza debido a que los errores humanos dentro de la programacin de computadores son muchos y aumentan considerablemente con la complejidad del problema.

    Se refiere a ejecutar el programa con varios datos de entrada; as se determina si el programa tiene errores lgicos y se corrigen.

    Tambin se encuentran errores de ejecucin (errores que el computador puede entender pero no ejecutar).Ej: Divisiones por cero.

    Para esto se utilizan valores de entrada: Normales. Extremos, limites. Especiales.Prueba y Depuracin

  • *Se lleva a cabo despus de terminado el programa.

    Se utiliza para hacerle soporte al programa: Cuando es necesario hacer algn cambio, ajuste o complemento al sistema para que siga trabajando de manera correcta.

    Para esto la documentacin debe ser correcta, completa y actualizada.Mantenimiento

  • *

    IMPLEMENTACIN

    DISEO

    ANALISIS

    PROGRAMA

    ALGORITMO

    PROBLEMA

  • *Inicio o FinEntrada o SalidaProcesoDecisinConectoresDireccin(Flujo)DIAGRAMAS DE FLUJO

    Para expresarlo en trminos intuitivos, un programa es una lista de actividades que se preparan para la realizacin de una tarea.Esta idea no slo est relacionada con las computadoras, sino que pertenece al campo de casi todas las actividades humanas. Ejemplos de programas pueden ser: Una receta de cocina que indica los pasos que se deben seguir, uno a uno para preparar determinado alimentoUn mapa de Tesoro: para indicar la posicin del tesoro, el mapa generalmente tiene una serie de instrucciones que deben ser descifradas por quien desea desenterrarlo.Una partitura musical que instruye al ejecutante sobre las notas, los silencios, la intensidad del sonido y otros aspectos de la pieza que quiere tocar.

    Elementos de un programa:El Objetivo: Es la tarea que se debe realizar cuando se ejecute el programa. Para que se pueda satisfacer el objetivo, debe contarse con las herramientas y los medios adecuados para la actividad propuesta; y cuando se prepara el programa es necesario tener en cuenta cules son los recursos que se utlilizan.El Programador: Es el encargado de preparar el plan o programa. Normalmente, se trata de una persona o un conjunto de personas, pero nada impide que sea una mquina (por ejemplo las que componen msica)Las Instrucciones: Constituyen el ncleo del programa y tienen las siguientes caractersticas:Deben estar Materializadas en alguna forma accesible al ejecutorPueden presentarse en un escrito, como un manual de procedimientosPueden ser expresadas como un conjunto de seales grabadas en una cinta electromagntica, disquetes, etc. Como los programas de computador

    Ejemplo: Mapa del Tesoro:El objetivo es dirigir al ejecutor hacia el cofre que contiene el tesoroEl programador es, con seguridad un malvado pero inteligente bucaneroEl ejecutor es aquel que tenga el mapa en su poder, sea capaz de seguir las instrucciones y posea los medios para llegar hasta la isla del tesoro despus de sortear todas las dificultades normales de un viaje de esta naturaleza: complots, motines, tormentas, naufragios, etc.Las instrucciones en este caso, por lo general no estn diseadas para facilitar la tarea sino para entorpecerla, pues se supone que el bucanero lo nico que pretendi fue dejar un registro que le permitiera a l mismo regresar por el botn una vez se hubiera desecho de todos los compaeros, los cuales deseaban tambin eliminarlo y apropiarse de todo.

    Restricciones de un programa.Para que un conjunto de instrucciones pueda constituir un programa vlido:Cada una de ellas debe ser comprensible para el ejecutor (es decir, ser correcta en sintaxis): Por ejemplo, no es posible conducir un automovil normal explicndole verbalmente a la mquina, antes de salir, cul es el comino que debe tomar y las precaucionesa que debe tener en cuenta, en ese caso las instrucciones son incomprensibles para el ejecutor.

    Cada una debe ser realizable desde la situacin en que se encuentra el ejecutor. Ej: Para quien ha llegado a la cima de una montaa, lejos del agua, siguiendo el mapa, sera imposible obedecer una instruccin como: nadar ahora hasta el fondo. Aunque es una orden comprensible, no es posible obedecerla en estas circunstancias.

    Ninguna debe tener como consecuencia la imposibilidad de seguir ejecutando las instrucciones siguientes. Ej: Al borde de un precipicio, la orden dar un paso al frente puede conducir a un descalabro.

    No se deben presentar situaciones en las cuales el ejecutor se vea forzado a repetir indefinidamente una misma porcin del programa. Ej: Para una persona que est buscando una direccin en una ciudad desconocida, no sera de ninguna ayuda decirle: D la vuelta a la manzana y cada vez que llegue a este punto repita la misma accinPara conseguir unas galletas bien horneadas, no existe manera de ejecutar la orden sacarlas del horno 5 minutos antes de que se quemen, a menos que se conozca el tiempo que les toma quemarse.Mas aun, si estos involucran operaciones matemticas complejas y/o repetitivas, o requieren del manejo de un volumen muy grande de datos.Para facilitar la comprensin de las soluciones y la comunicacin entre los programadores, es costumbre representar las estructuras grficamente y organizarlas en esquemas que permiten visualizar el programa como un todo.

    Escribir un programa en seudocdigo tiene varias ventajas importantes:El programa generalmente queda expresado en una forma que puede ser comprendida incluso por quienes no conocen mucho de programacin. As entonces, esta forma se presta para facilitar la comunicacin entre diversos programadores y entre estos y su clienteAntes de poner en funcionamiento un programa es importante verificar que es capaz de producir el efecto que se espera. Cuando se requiere poner a prueba un mismo algoritmo en diferentes lenguajes, la forma mas usual no es traducir de un lenguaje inicial a otros, sino partir de la definicin en seudo cdigo y de ah derivar las posibles implementaciones particulares.

    Por ejemplo, estando en casa, de pronto se daa una bombilla, nuestro primer movimiento es el de cambiarla por una nueva. El primer acto reflejo sera tomar la bombilla daada y bajarla de su sitio. Despus de un corto tiempo empezamos a analizar el problema con mayor detenimiento y nos preguntamos ciertas cosas que nos hacen falta (datos de entrada) Donde estn las bombillas nuevas? Como bajo la bombilla daada siendo el caso que se encuentre en un sitio alto o difcil de alcanzar? Resolviendo estas dudas se ve que lo primero es apagar el ciuruito o en caso dado cortar la energa en la caja de electricidad. Luego buscar una butaca para alcanzar la bombilla quemada, pero antes debo proteger mi mano por si la bombilla an est caliente, pero si es de neon no me preocupo mucho, pues esta no calienta mucho (datos auxiliares), luego debo ir por la bombilla nueva, enroscarla y colocarla con mucho cuidado y prender el circuito para verificar que qued bien instala da la bombilla (datos de salida)De esta manera podemos establecer unas etapas o pasos que nos permitan solucionar problemas de forma algortmica.Las actividades que hacemos, en su mayora siguen una serie consecutiva y ordenada de pasos o algoritmos.

    Desde el momento en que estamos planeando hacer algo, estamos diseando un algoritmo.