Clase 3-algoritmos

  • View
    1.824

  • Download
    0

Embed Size (px)

Text of Clase 3-algoritmos

  • 1. Resolucin de problemas con la computadora Prof.Santiago Mena Zorrilla

2. ALGORITMOS Y PROGRAMAS La principal razn por la cual las personas aprenden lenguajes de programacin es utilizar un ordenador como una herramienta para la resolucin de problemas complejos e incrementar la productividad en sus tareas. Puesto que las computadoras por si solas no pueden resolver los problemas diarios el ser humano a creado mecanismos y cdigo que le permitan comunicarse con la maquina y obtener lo que desea. Para esto desarrollo los llamados algoritmos que simplifica el pensamiento humano a nivel de cdigos que van a ser interpretados por la computadora 3. Algoritmos Conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien lo ejecute. Conjunto de reglas completamente definidas y procedimientos para resolver un problema mediante un nmero finito de pasos. Conjunto de pasos ordenados que son necesarios realizar para la resolucin de un problema sea en nuestra vida diaria o en la computadora. 4. Para crear el algoritmo en la resolucin del problema debemos pasar por las siguientes etapas. 1. Anlisis del problema 2. Definicion del problema 3. Especificaciones de entradas 4. Especificaciones de salidas 5. Diseo de la solucin 6. Herramientas de programacin 7. Codificacin 8. Compilacin 9. Prueba (verificacin) y depuracin 10. Documentacin y mantenimiento 5. Anlisis del problema Requiere que el problema sea comprendido claramente. El propsito del anlisis de un problema es ayudar en la comprensin de la naturaleza del problema. Definicin del problema Realizar una clara definicin, donde se contemple exactamente lo que debe hacer el programa y el resultado o solucin deseada. La computadora requiere especificaciones detalladas de Entrada y Salida. Qu entradas se requieren? (tipo y cantidad) Cul es la salida deseada? (tipo y cantidad) Qu mtodo produce la salida deseada?. Diseo de la solucin Establecer cmo hace el programa la tarea solicitada. Los mtodos ms eficaces para el proceso de diseo se basan en el conocido por divide y vencers. Es decir, la resolucin de un problema complejo se realiza dividiendo el problema en subproblemas (mdulos). Herramientas de programacin Las ms comunes son los diagramas de flujo (flowchart) y pseudocdigo. Los primeros es una representacin grfica de un algoritmo. Los segundos son donde las instrucciones se escriben en palabras similares al ingls o espaol, que facilitan tanto la escritura como la lectura de programas. 6. Codificacin Es la escritura en un lenguaje de programacin de la representacin de algoritmos desarrollada en las etapas precedentes.Dado que el diseo de un algoritmo es independiente del lenguaje de programacin utilizado para su implementacin, el cdigo puede ser escrito con igual facilidad en un leguaje o en otro. Compilacin El programa fuente debe ser traducido a lenguaje mquina, este proceso se realiza con el compilador y el sistema operativo que se encarga prcticamente de la compilacin. Prueba (verificacin) y depuracin. La verificacin de un programa es el proceso de ejecucin Documentacin y mantenimiento. 7. 1. Debe ser preciso e indicar el orden de realizacin de cada paso. 2. Debe estar definido. 3. Debe ser finito. Diseo descendente Descomposicin del problema original en subproblemas ms simples y a continuacin dividir estos subproblemas en otros ms simples que puedan ser implementados para su solucin en la computadora. Los problemas complejos se pueden resolver eficazmente con la computadora cuando se dividen en subproblemas que sean ms fciles de solucionar que el original. Refinamiento por pasos El problema se comprende ms fcilmente al dividirse en partes ms simples. Las modificaciones son ms fciles. Caractersticas de los algoritmo 8. Herramientas de programacin Diagrama de flujo Es una de las tcnicas de representacin grfica de algoritmos. Utiliza smbolos. Los pasos del algoritmo son escritos en esos smbolos unidos por flechas [lneas de flujo] que indican la secuencia en que se deben ejecutar. Pseudocdigo Es un lenguaje de especificacin [descripcin] de algoritmos. Hace el paso de codificacin final. 9. Recomendaciones para el diseo de Diagramas de Flujo - Se deben se usar solamente lneas de flujo horizontales y/o verticales. - Se debe evitar el cruce de lneas utilizando los conectores. - Se deben usar conectores solo cuando sea necesario. - No deben quedar lneas de flujo son 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. 10. Pseudocdigo Es un lenguaje de especificacin [descripcin] de algoritmos. Hace el paso de codificacin final. Utilizacin de palabras reservadas en ingls paraepresentar acciones sucesivas. ifthenelse whileend repeatuntil 11. Ejemplo Este ejemplo presenta el anlisis del problema y el diseo del algoritmo. Leer el radio de un crculo , calcular su superficie y la longitud de la circunferencia. Anlisis: Las entradas de datos en este problema se concretan en el radio del crculo. Las salidas sern la superficie y la circunferencia. Entradas: Radio del crculo [varible RADIO] Salidas: Superficie del crculo [variable AREA] y Circunferencia del crculo [variable CIRCUNFERENCIA] Variables: RADIO, AREA, CIRCUNFERENCIA Diseo del algoritmo: Diseo descendente y Refinamiento por pasos El problema de clculo de la circunferencia y superficie de un crculo se puede descomponer en subproblemas ms simples: Leer datos de entrada. Calcular superficie y longitud de circunferencia. Escribir resultados [datos de salida]. 12. Diseo descendente [Subproblemas] Refinamiento Leer radio Leer radio Calcular superficie Superficie = 3.141592 * radio ^ 2 Calcular circunferencia Circunferencia = 2 * 3.141592 * radio Escribir resultados Escribir radio, superficie, circunferencia 13. Diagrama de flujo 14. Desarrolla el siguiente ejemplo Qu hacer para ver la pelcula El Gladiador"? Ir al cine Comprar una entrada Ver la pelcula Regresar a casa 1. Inicio 2. Ver la cartelera de cine en Internet 3. Sino proyectan El Gladiador" entonces decidir por otra pelcula 4. Si proyectan El Gladiador" ir al cine 5. Si hay fila entonces formarse mientras haya personas delante hacer avanzar en la fila si existen asientos disponibles entonces comprar una entrada encontrar el asiento correspondiente mientras proyectan la pelcula hacer ver la pelcula 5. Abandonar el cine 6. Volver a casa 7. Fin 15. Tarea para la prxima clase 21 de Sept. Elaborar utilizando las herramientas de diagrama de flujo un algoritmos para solucionar algn problema de las asignaturas de tu carrera Realizar un algoritmo con la herramienta de diagrama de flujo utilizando la variable tiempo o reloj como principal para recibir la clase de computacion Prepara tu explicacin en Power Point y sbelo a tu pagina WEB en www.Mex.tl Explicar en la proxima clase como se llego al resultado 16. Diagramas Complejos Diagrama de flujo que Rellena una matriz cuadrada de 7*7, y calcula la suma de cada rengln o fila, y cada columna, y luego las almacena en un vector. 17. Algoritmos sencillos 18. Suponga que un individuo desea invertir su capital en un banco y desea saber Cunto dinero ahorra despus de un mes, si el banco paga a razn de 2% mensual? 19. Un vendedor recibe un sueldo base mas un 10 % extra por comisin de sus ventas, el vendedor desea saber cuanto dinero obtendr por concepto de comisiones por las tres ventas que realiza en el mes, y el total que recibir en el mes. 20. Una tienda ofrece un descuento del 15% sobre el total de la compra, y un cliente desea saber cuanto deber pagar finalmente por su compra. 21. Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes. 22. Indique si una persona puede participar o no en las elecciones del 2012. 23. Imprime un conteo del 0 al 100 24. La resolucin de problemas con la computadora por estos mtodos ya sea los diagramas de flujos o por medio de seudocdigo es una forma de pensar muy til para resolver problemas complejos en nuestra vida diaria y no solo aprender contenidos de memoria si no por estos mtodos descomponer el aprendizaje y asimilar correctamente lo aprendido