12.07.2015 Views

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

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

© FUOC • P05/75062/00112 26 <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>nteEl resto <strong>de</strong> funciones son obvias:funcion ultimaPa<strong>la</strong>bra(m: tPa<strong>la</strong>bra): booleanoretorna m.final o m.vacioffuncionfuncion pa<strong>la</strong>braVacia(m: tPa<strong>la</strong>bra): booleanoretorna m.vaciaffuncionfuncion hayQueCorregirPa<strong>la</strong>bra(m: tPa<strong>la</strong>bra): booleanoretorna m.hayQueCorregirffuncionCon esto llegamos al final <strong>de</strong> <strong>la</strong> solución <strong>de</strong>l ejercicio. Habréis notado <strong>la</strong> cantidad<strong>de</strong> <strong>de</strong>talles que han sido necesarios para llegar a <strong>la</strong> solución. El análisisha sido complicado a causa <strong>de</strong> los <strong>de</strong>talles que se <strong>de</strong>bían tener en cuenta, sobretodo en <strong>la</strong> etapa en que trabajábamos con frases como secuencias <strong>de</strong> pa<strong>la</strong>bras.Sin embargo, <strong>la</strong> separación <strong>de</strong> los problemas nos ha ayudado a concentrarnos<strong>de</strong> forma más cómoda en estos <strong>de</strong>talles, algo que no hubiese ocurrido si hubiéramostenido en cuenta todos los <strong>de</strong>talles <strong>de</strong>l problema al mismo tiempo.1.8. Valoración final <strong>de</strong> <strong>la</strong> <strong>metodología</strong>¿Realmente es tan útil el método propuesto? Si lo hubiésemos pensado sólo encaracteres, sin utilizar ninguna abstracción ni separación <strong>de</strong> problemas, podríamoshaber llegado a una solución como ésta:algoritmo churrovarc: caracter;N1, N2, N3, N4, Mx: entero;FF, A, DP: booleano;fvarN1 := 0;Mx := 0;N2 := 0;N3 := 0;N4 := 0;A := falso;FF := cierto;c := leerCaracter();mientras (no FF) o (c ≠ ‘.’) hacersi (c ≠ ‘ ’) entoncesFF := falso;si no A entoncesA := c = ‘*’fsic := leerCaracter();si (c = ‘ ’) entoncessi A entoncesN2 := N2 + 1;A := falsofsiDP := c = ‘.’;c := LeerCaracter()fsisinoDP := c = ‘.’;c := LeerCaracter()fsi

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!