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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

© FUOC • P05/75062/00112 23 <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>nteDecidimos hacer <strong>la</strong> abstracción <strong>de</strong> pa<strong>la</strong>bra para resolver este nivel. Por lo tanto,expresaremos todas <strong>la</strong>s soluciones <strong>de</strong> este nivel en términos <strong>de</strong> pa<strong>la</strong>bras, sihace falta, y más a<strong>de</strong><strong>la</strong>nte ya trabajaremos los <strong>de</strong>talles <strong>de</strong> los pa<strong>la</strong>bras en otraetapa.Al reconocer una secuencia <strong>de</strong>l problema, sea ésta real o abstracta, es necesarioi<strong>de</strong>ntificar el primer elemento, cómo se obtiene el siguiente y qué elemento esel último o marca el final <strong>de</strong> <strong>la</strong> secuencia. Al repasar el enunciado, observamosque no hay ninguna diferencia entre obtener <strong>la</strong> primera pa<strong>la</strong>bra y obtener <strong>la</strong> siguiente;también observamos que <strong>la</strong> propiedad que i<strong>de</strong>ntifica <strong>la</strong> última pa<strong>la</strong>braes que finaliza con un punto. En nuestro caso, el mantenimiento <strong>de</strong> <strong>la</strong> abstracción<strong>de</strong> pa<strong>la</strong>bra convierte <strong>la</strong> i<strong>de</strong>ntificación <strong>de</strong> <strong>la</strong>s operaciones que hay que efectuaren <strong>la</strong> secuencia en abstracciones <strong>de</strong> código, como veremos a continuación.Reconocemos <strong>la</strong> obtención <strong>de</strong> una frase como un problema <strong>de</strong> recorrido, consistenteen contar el número <strong>de</strong> pa<strong>la</strong>bras por corregir; esto nos lleva al siguienteborrador que hay que completar:accion obtenerFrase(sal f: tFrase)var m: tPa<strong>la</strong>bra;fvar“Iniciar el tratamiento”obtenerPrimeraPa<strong>la</strong>bra(m);mientras no ultimaPa<strong>la</strong>bra(m) hacer“Tratar el elemento” { tratamiento <strong>de</strong> <strong>la</strong> pa<strong>la</strong>bra m }obtenerPa<strong>la</strong>bra(m)fmientras“Tratamiento final”faccionObservamos también que <strong>la</strong> última pa<strong>la</strong>bra no sólo marca el final <strong>de</strong> <strong>la</strong> frase,sino que resulta válida para tratar, al igual que <strong>la</strong>s <strong>de</strong>más. Esta posibilidad noestá contemp<strong>la</strong>da en el esquema <strong>de</strong> recorrido que <strong>de</strong>beremos modificar convenientementepara que sea tenida en cuenta.Debemos prever <strong>la</strong> posibilidad <strong>de</strong> que <strong>la</strong> frase esté vacía. Es <strong>de</strong>cir, que sólo contengael punto. En este caso, tendremos que contar con <strong>la</strong> pa<strong>la</strong>bra vacía, queno tiene ningún carácter y acaba en punto.El tratamiento que hay que aplicar para cada pa<strong>la</strong>bra consiste en saber si hayque corregir o no aquél<strong>la</strong> a <strong>la</strong> que se ha accedido, y en el caso <strong>de</strong> que así sea,contabilizar<strong>la</strong> para saber cuántas pa<strong>la</strong>bras <strong>de</strong>bemos corregir en <strong>la</strong> frase. Porotro <strong>la</strong>do, contamos el número <strong>de</strong> pa<strong>la</strong>bras que hay en <strong>la</strong> frase para saber siésta está vacía o no. Debemos recordar que <strong>la</strong> frase vacía (y, por lo tanto, quecontiene una pa<strong>la</strong>bra vacía) representa el final <strong>de</strong>l texto y no forma parte <strong>de</strong>lmismo. Obviamente, <strong>la</strong> pa<strong>la</strong>bra vacía no es una pa<strong>la</strong>bra real, y por ello no hay

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

Saved successfully!

Ooh no, something went wrong!