Introducción a la metodología de diseño descendente
Introducción a la metodología de diseño descendente Introducción a la metodología de diseño descendente
© FUOC • P05/75062/00112 5 Introducción a la metodología de diseño descendenteIntroducciónEn este módulo aprenderemos a desarrollar algoritmos para problemas máscomplicados que los que hemos visto hasta ahora. No introduciremos ningúnelemento más del lenguaje algorítmico. Lo que haremos, en todo caso, es madurarel uso que daremos a algunos de los elementos, como por ejemplo la declaraciónde acciones, las funciones y la definición de nuevos tipos. Dicho deotro modo, aquí propondremos una metodología por la cual llegaremos, si laseguimos, al diseño de algoritmos correctos e inteligibles que solucionan enunciadosmás complejos.Pensad que...... el seguimiento de la metodologíaque propondremos servirápara que nuestros diseños sehagan en un tiempo de desarrollomínimamente razonable,de modo que aumente nuestrogrado de eficacia al producir algoritmoscorrectos. Recordadlos objetivos que nos habíamospropuesto en el módulo “Introduccióna la programación”.Hasta ahora nos hemos dedicado, por un lado, a aprender la sintaxis y la semánticade los elementos del lenguaje algorítmico. Con la resolución de problemassencillos hemos desarrollado la destreza al expresar nuestros algoritmos de formaclara y no ambigua. A pesar de ello, para diseñar nuestros primeros algoritmoshemos estudiado unas pautas metodológicas basadas en la aplicación de losesquemas de tratamiento secuencial. El uso de estos esquemas nos ayuda a evitarerrores típicos en los que podemos caer, así como a formular algoritmos inteligibles.Así pues, la metodología que se imparte en este curso no es exclusiva de estemódulo, sino que en los módulos anteriores ya se ha propuesto de forma progresivauna metodología que hay que seguir para problemas más sencillos quelos que encontraremos a partir de este momento. Sin embargo, todo lo que hemosaprendido gracias a estos problemas más sencillos nos servirá tambiénpara los problemas complejos que propondremos más adelante.Los problemas sencillos que hemos estado resolviendo se caracterizan por teneruna solución que utiliza un número razonable de elementos básicos dellenguaje algorítmico.Los enunciados de los problemas sencillos hacen referencia a objetosque están muy cercanos a los tipos elementales de lenguaje o que sondirectamente representables por éstos.El tratamiento que hay que aplicar a estos objetos se puede alcanzar con unaspocas asignaciones y con algunas construcciones algorítmicas. El resultado finales un algoritmo comprensible y legible en términos de los elementos básicosdel lenguaje algorítmico.
- Page 1: Introduccióna la metodologíade di
- Page 6 and 7: © FUOC • P05/75062/00112 6 Intro
- Page 8 and 9: © FUOC • P05/75062/00112 8 Intro
- Page 10 and 11: © FUOC • P05/75062/00112 10 Intr
- Page 12 and 13: © FUOC • P05/75062/00112 12 Intr
- Page 14 and 15: © FUOC • P05/75062/00112 14 Intr
- Page 16 and 17: © FUOC • P05/75062/00112 16 Intr
- Page 18 and 19: © FUOC • P05/75062/00112 18 Intr
- Page 20 and 21: © FUOC • P05/75062/00112 20 Intr
- Page 22 and 23: © FUOC • P05/75062/00112 22 Intr
- Page 24 and 25: © FUOC • P05/75062/00112 24 Intr
- Page 26 and 27: © FUOC • P05/75062/00112 26 Intr
- Page 28 and 29: © FUOC • P05/75062/00112 28 Intr
- Page 30 and 31: © FUOC • P05/75062/00112 30 Intr
- Page 32 and 33: © FUOC • P05/75062/00112 32 Intr
- Page 34 and 35: © FUOC • P05/75062/00112 34 Intr
- Page 37 and 38: © FUOC • P05/75062/00112 37 Intr
- Page 39 and 40: © FUOC • P05/75062/00112 39 Intr
- Page 41 and 42: © FUOC • P05/75062/00112 41 Intr
- Page 43 and 44: © FUOC • P05/75062/00112 43 Intr
- Page 45 and 46: © FUOC • P05/75062/00112 45 Intr
- Page 47 and 48: © FUOC • P05/75062/00112 47 Intr
- Page 49 and 50: © FUOC • P05/75062/00112 49 Intr
- Page 51 and 52: © FUOC • P05/75062/00112 51 Intr
- Page 53 and 54: © FUOC • P05/75062/00112 53 Intr
© FUOC • P05/75062/00112 5 <strong>Introducción</strong> a <strong>la</strong> <strong>metodología</strong> <strong>de</strong> <strong>diseño</strong> <strong>de</strong>scen<strong>de</strong>nte<strong>Introducción</strong>En este módulo apren<strong>de</strong>remos a <strong>de</strong>sarrol<strong>la</strong>r algoritmos para problemas máscomplicados que los que hemos visto hasta ahora. No introduciremos ningúnelemento más <strong>de</strong>l lenguaje algorítmico. Lo que haremos, en todo caso, es madurarel uso que daremos a algunos <strong>de</strong> los elementos, como por ejemplo <strong>la</strong> <strong>de</strong>c<strong>la</strong>ración<strong>de</strong> acciones, <strong>la</strong>s funciones y <strong>la</strong> <strong>de</strong>finición <strong>de</strong> nuevos tipos. Dicho <strong>de</strong>otro modo, aquí propondremos una <strong>metodología</strong> por <strong>la</strong> cual llegaremos, si <strong>la</strong>seguimos, al <strong>diseño</strong> <strong>de</strong> algoritmos correctos e inteligibles que solucionan enunciadosmás complejos.Pensad que...... el seguimiento <strong>de</strong> <strong>la</strong> <strong>metodología</strong>que propondremos servirápara que nuestros <strong>diseño</strong>s sehagan en un tiempo <strong>de</strong> <strong>de</strong>sarrollomínimamente razonable,<strong>de</strong> modo que aumente nuestrogrado <strong>de</strong> eficacia al producir algoritmoscorrectos. Recordadlos objetivos que nos habíamospropuesto en el módulo “<strong>Introducción</strong>a <strong>la</strong> programación”.Hasta ahora nos hemos <strong>de</strong>dicado, por un <strong>la</strong>do, a apren<strong>de</strong>r <strong>la</strong> sintaxis y <strong>la</strong> semántica<strong>de</strong> los elementos <strong>de</strong>l lenguaje algorítmico. Con <strong>la</strong> resolución <strong>de</strong> problemassencillos hemos <strong>de</strong>sarrol<strong>la</strong>do <strong>la</strong> <strong>de</strong>streza al expresar nuestros algoritmos <strong>de</strong> formac<strong>la</strong>ra y no ambigua. A pesar <strong>de</strong> ello, para diseñar nuestros primeros algoritmoshemos estudiado unas pautas metodológicas basadas en <strong>la</strong> aplicación <strong>de</strong> losesquemas <strong>de</strong> tratamiento secuencial. El uso <strong>de</strong> estos esquemas nos ayuda a evitarerrores típicos en los que po<strong>de</strong>mos caer, así como a formu<strong>la</strong>r algoritmos inteligibles.Así pues, <strong>la</strong> <strong>metodología</strong> que se imparte en este curso no es exclusiva <strong>de</strong> estemódulo, sino que en los módulos anteriores ya se ha propuesto <strong>de</strong> forma progresivauna <strong>metodología</strong> que hay que seguir para problemas más sencillos quelos que encontraremos a partir <strong>de</strong> este momento. Sin embargo, todo lo que hemosaprendido gracias a estos problemas más sencillos nos servirá tambiénpara los problemas complejos que propondremos más a<strong>de</strong><strong>la</strong>nte.Los problemas sencillos que hemos estado resolviendo se caracterizan por teneruna solución que utiliza un número razonable <strong>de</strong> elementos básicos <strong>de</strong>llenguaje algorítmico.Los enunciados <strong>de</strong> los problemas sencillos hacen referencia a objetosque están muy cercanos a los tipos elementales <strong>de</strong> lenguaje o que sondirectamente representables por éstos.El tratamiento que hay que aplicar a estos objetos se pue<strong>de</strong> alcanzar con unaspocas asignaciones y con algunas construcciones algorítmicas. El resultado finales un algoritmo comprensible y legible en términos <strong>de</strong> los elementos básicos<strong>de</strong>l lenguaje algorítmico.