ing. jorge ospina cun, febrero de 2013 programación procedimental y estructurada
TRANSCRIPT
ING. JORGE OSPINAC U N, F E B R E R O D E 2 0 1 3
Programación procedimental y
estructurada
El Algoritmo y la resolución de problemas
Descripción y
análisis del
problema
Diseño del
algoritmo
Programa en
un lenguaje
de program
ación
Entrada SalidaProceso
Diseño de un Algoritmo
Diseño del algoritmo
Diseño descenden
te Refinamie
nto
Representación gráfica
Diseño descendente Top Down
. . .
Problema
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
Ejemplo de diseño descendente
Cajero automáti
co
Lectura y
validación de clave
Selección de tipo
de cuenta
Selección de tipo
de operació
n
Finalizar
Consulta de saldo
Traspaso entre
cuentas propias
Retiro de
efectivo
Pago de servicios
. . .
. . .
Refinamiento del algoritmo
Algoritmo para el cálculo de la media de la edad y peso de un grupo de estudiantes
1. Inicio
2. Leer cantidad de estudiantes
3. Leer edad y peso de los estudiantes
4. Calcular las medias de la edad y del peso
5. Escribir resultados
Versión refinada del algoritmo
Algoritmo para el cálculo de la media de la edad y peso de un grupo de estudiantes
1. Inicio
2. Leer cantidad de estudiantes (N)
3. NE ← 0, SE ← 0, SP ← 0
4. MIENTRAS NE < N
4.1 Leer edad y peso del estudiante (E, P)
4.2 SE ← SE + E
4.3 SP ← SP + P
4.4 Incrementar el contador: NE ← NE + 1
FIN-MIENTRAS
Diseño de algoritmos
Especificación y representación gráfica del algoritmo
PseudocódigoDiagramas de flujoDiagramas de Nassi-Schneiderman (N-S)
Estrategias de construcción de programas
Descripción y análisis del problema
Diseño del algoritmo
Codificación del programa
Ejecución del programa
Validación del programa
Consideraciones al diseñar programas
Correcto: Producir resultados requeridos.
Legible: Debe ser entendido por cualquier programador.
Modificable; Su estructura debe permitir modificaciones.
Depurable: Debe ser fácil la localización y corrección de errores.
Previsiones futuras en los programas.
Prever el aumento de datos y estructuras.
Cambios en la organización de la información.
Cambios debido preferentemente a la modernización de los documentos y sus formatos.
Sustitución, ampliación o reducción en el sistema de procesos de datos.
Funciones y Procedimientos
una función y un procedimiento hacen casi lo mismo (ambos aceptan parámetros).
Ejecutan un bloque de código para que hagan una operación específica.
Pero la diferencia está en qué cuando se llama a un procedimiento, éste ejecuta la porción de código y nada más, pero cuando se llama una función, ésta ejecuta su bloque de código y además arroja un valor
Procedimientos, también conocidos como rutinas, subrutinas, métodos o funciones simplemente contienen series de pasos computacionales.
Cualquier procedimiento puede ser llamado en cualquier punto durante la ejecución de un programa, incluyendo otros procedimientos o en él mismo
Programación Convencional
Programación Convencional
Desventajas de la Programación convencional
Los programas suelen ser excesivamente rígidos.
Los programadores gastan la mayoría de su tiempo corrigiendo sus errores.
Los programadores prefieren escribir sus módulos.
Cada programador tiene sus propios programas
Elevado costo de actualización.
Deficiencias en la documentación.
Programación estructurada
Técnica de construcción de programas que utilizan al máximo los recursos del lenguaje, limita el conjunto de estructuras aplicables a leer y presenta una serie de reglas que coordinan adecuadamente el desarrollo de las diferentes fases de la programación.Estructuras básicas de
control.Recursos abstractosDiseño descendente
Programación estructurada
Estructuras básicas de control.
Tiene exactamente una entrada y una salida para control del programa.
Existen caminos seguibles desde la entrada hasta la salida que conducen por cada parte del programa, es decir, no existen lazos infinitos ni instrucciones que no se ejecutan
Secuencia condiciónbucle
18
Programación estructurada
Recursos abstractos
no tiene en cuenta la máquina que lo va a resolver así como el lenguaje de programación que se va a utilizar.
Metodología Descendente
Consiste en establecer una serie de niveles de menor o mayor complejidad que den solución al problema.
Un programa estructurado tiene una representación en forma de árbol.
El diseño se basa en la realización de diferentes niveles.
Ventajas de la programación estructurada.
Los programas son más fáciles de entender
Reducción del esfuerzo en las pruebas.
Reducción de los costos de mantenimiento.
Programas más sencillos y más rápidos
Aumento de la productividad del programador
Los programas quedan mejor documentados internamente.
Bibliografía y/o Cibergrafía
Fundamentos de programación, Algoritmos y Estructura de datos y Objetos, Joyanes, Luis, Editorial McGraw Hill, 2003.
Metodología de la programación estructurada, Joyanes, Luis, Editorial McGraw Hill, 1993.
http://www.unistmo.edu.mx/~daniel.garcia/
Dr. Ana Lilia Laureano-Cruces Departamento de Sistemas UAM, Unidad Azcapotzalco