prog estruct
Post on 29-Jan-2018
2.975 views
Embed Size (px)
TRANSCRIPT
- 1. Curso de Programacin EstructuradaParte I Dr. Ana Lilia Laureano-Cruces e-mail: clc@correo.azc.uam.mx Departamento de Sistemas UAM, Unidad Azcapotzalco
- 2. Objetivos (I)
- Ubicar la importancia de la programacin en la ingeniera del software
- Explicar el proceso de construccin de un programa
- Disear algoritmos para resolver problemas simples
- Disear y construir programas modulares bajo el enfoque de la programacin estructurada utilizando eficazmente y eficientemente un entorno de desarrollo convencional
- 3. Objetivos (II)
- Explicar y aplicar algoritmos iterativos de bsqueda y ordenamiento
- Conocer el papel de las etapas de anlisis, diseo y programacin en el desarrollo estructurado del software
- 4. Contenido Sinttico Resolucin de problemas y los algoritmos De los algoritmos a los programas Constructores fundamentales de la programacin estructurada Fundamentos del diseo modular Algoritmos iterativos de bsqueda y ordenamiento Archivos Introduccin a los tipos de datos abstractos Introduccin al anlisis y diseo estructurado del software
- 5. Resolucin de problemas y los algoritmos
- Concepto de algoritmo
- Propiedades de un algoritmo
- El rol del algoritmo en la resolucin de problemas
- 6. Concepto de algoritmo (I) Un algoritmo es un procedimiento para resolver un problema. ste describe un conjunto finito y ordenado de pasos, reglas o instrucciones para producir la solucin a un problema dado.Un algoritmo puede ser definido como una secuencia de instrucciones bien definidas y efectivas, y finaliza con la produccin del resultado esperado a partir de las entradas dadas.
- 7. Concepto de algoritmo (II) Algoritmo Especificacin de las entradas Accin o procedimiento Accin o procedimiento Accin o procedimiento Accin o procedimiento Descripcin del resultado o efecto . . .
- 8. Un primer ejemplo de algoritmo
- Inicio
- Leer base y altura (b, a)
- arb*a
- pe2*(b + a)
- Escribir rea del rectngulo: , ar
- Escribir Permetro del rectngulo: , pe
- Fin
- 9. Caractersticas de los algoritmos (I)
- Son precisos . Deben indicar el orden de realizacin de cada paso, as como especificar con precisin las entradas y cada paso o etapa
- Estn bien definidos . Etapas bien definidas y concretas
- Exactitud y correccin . Se debe demostrar que el algoritmo resuelve el problema para el cual fue escrito
- Son finitos . Deben tener un nmero finito de pasos y deben terminar
- Deben describir el resultado o efecto final . La salida esperada del algoritmo debe estar completamente especificada
- 10. Caractersticas de los algoritmos (II)
- Entrada
- Proceso
- Salida
- 11. Caractersticas de los algoritmos (III)
- Son independientes tanto del lenguaje de programacin en el que se expresan como del hardware en que se ejecutan los programas
- 12. El rol del algoritmo en la resolucin de problemas (I) La resolucin de un problema en computadora requiere como paso previo el diseo de un algoritmo que especifique el procedimiento para resolver el problema. Es decir, antes de codificar un programa se requiere disear el algoritmo.Descripcin y anlisis del problema Diseo del algoritmo Programa en un lenguaje de programacin
- 13. Ejemplos de algoritmos (I.a.)
- Sexo de la persona (S)
- Nmero de personas del sexo masculino (CM)
- Nmero de personas del sexo femenino (CF)
- Total de deportistas (N)
- Porcentaje de hombres (PM)
- Porcentaje de mujeres (PF)
- 14. Ejemplos de algoritmos (I.b.)
- Total de deportistas (N)
- Sexo de la persona (S)
- Porcentaje de hombres (PM)
- Porcentaje de mujeres (PF)
- Contar la cantidad de personas del sexo masculino (CM = CM + 1)
- Contar la cantidad de personas del sexo femenino (CF = CF + 1)
- Calcular el porcentaje de hombres en el grupo (PM = CM/N*100)
- Calcular el porcentaje de mujeres en el grupo (PF = CF/N*100)
- 15. Ejemplos de algoritmos (I.c.) Algoritmo:
- Inicio
- Inicializar en cero el total de personas del sexo masculino: CM0
- Inicializar en cero el total de personas del sexo femenino: CF0
- Inicializar en cero el total de personas procesadas: TP0
- Leer total de deportistas (N)
- MIENTRAS TP < N
- 16. Ejemplos de algoritmos (I.d.) Algoritmo (continuacin):
- Calcular porcentaje de hombres en el grupo: PMCM/N*100
- Calcular porcentaje de mujeres en el grupo: PFCF/N*100
- Escribir Porcentaje de hombres en el grupo: , PM
- Escribir Porcentaje de mujeres en el grupo: , PF
- Fin
- En este algoritmo se puede apreciar el uso de las tres estructuras de control de la programacin estructurada:
- Estructura secuencial
- Estructura selectiva
- Estructura iterativa
- 17. Ejemplos de algoritmos (II)
- Clculo de la media de N observaciones numricas
- Determinar si unnmero es primo dada una lista de N nmeros enteros
- Clculo del factorial de un nmero N
- Retiro de efectivo en un cajero automtico
- Receta para preparar spaghetti alla napoletana
- 18. Diseo de algoritmos (I) Diseo del algoritmo Diseo descendente Refinamiento Representacin grfica
- 19. Diseo de algoritmos (II) Diseo descendente (I) El diseo descendente ( top down ) es un procedimiento de refinamiento iterativo de un problema, en el cual se parte del mayor nivel de abstraccin del problema (sistema o tarea) y se prosigue hacia los niveles inferiores a travs de un proceso de descomposicin del problema en subproblemas.En el diseo descendente se parte de una visin estructural del problema sin especificar detalles para ninguna de sus partes componentes. Cada componente del sistema es entonces refinado, mostrando ms detalles en cada nivel de refinamiento.
- 20. Diseo de algoritmos (III) Diseo descendente (II) . . . Problema Subproblema Subproblema Subproblema Subproblema Subproblema Subproblema Subproblema Subproblema Subproblema Subproblema Subproblema Subproblema
- 21. Diseo de algoritmos (IV) Diseo descendente (III) El diseo descendente efecta una relacin entre las sucesivas etapas de refinamiento, de forma tal que stas se relacionen unas con otras a travs de los flujos de entrada y de salida de informacin.X Y P P1 P2 P3 P4 X Y U V P Q P31 P32 P33 V Q R S
- 22. Diseo de algoritmos (V) Diseo descendente (IV) Ejemplo: el problema del cajero automtico Cajero automtico Lectura y validacin del NIP Seleccin de tipo de cuenta Seleccin de tipo de operacin Finalizar Consulta de saldo Traspaso entre cuentas propias Retiro de efectivo Pago de servicios . . . . . .
- 23. Diseo de algoritmos (VI) Refinamiento del algoritmo (I) Comnmente, la primera versin de un algoritmo no constituye una versin completa ni especfica del mismo. El refinamiento del algoritmo se refiere a la conversin del primer esbozo/versin del algoritmo en una versin ms detallada y completa, haciendo los pasos del algoritmo ms especficos. Este proceso conduce a la obtencin de un algoritmo claro, preciso y completo.
- 24. Diseo de algoritmos (VII) Refinamiento del algoritmo (II)
- Inicio
- Leer cantidad de estudiantes
- Leer edad y peso de los estudiantes
- Calcular las medias de la edad y del peso
- Escribir resultados
- 25. Diseo de algoritmos (VIII) Refinamiento del algoritmo (III)
- Inicio
- Leer cantidad de estudiantes (N)
- NE0, SE0, SP0
- MIENTRAS NE < N
- 4.1 Leer edad y peso del estudiante (E, P)
- 4.2 SESE + E
- 4.3 SPSP + P
- 4.4 Incrementar el contador: NENE + 1
- FIN-MIENTRAS
- 26. Diseo de algoritmos (IX) Refinamiento del algoritmo (IV)
- Calcular la media de la edad: MESE/N
- Calcular la media del peso: MP