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 47 <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>nte1)Primer nivel: fraseP<strong>la</strong>nteamiento– Abstracciones utilizadas: pa<strong>la</strong>bra.– I<strong>de</strong>ntificación <strong>de</strong> <strong>la</strong> secuencia: frase vista como secuencia <strong>de</strong> pa<strong>la</strong>bras. La obtención <strong>de</strong> <strong>la</strong>spa<strong>la</strong>bras primera y siguiente y el reconocimiento <strong>de</strong> <strong>la</strong> marca se encapsu<strong>la</strong>n mediante accionesy funciones.– I<strong>de</strong>ntificación <strong>de</strong>l esquema: recorrido. Hay que tratar <strong>la</strong> pa<strong>la</strong>bra que hace <strong>de</strong> marca <strong>de</strong> final.Aplicación directa <strong>de</strong>l algoritmoalgoritmo cuentaCapicuasFrasevarpa<strong>la</strong>bra: tPa<strong>la</strong>bra;nPa<strong>la</strong>brasC: entero;fvarnPa<strong>la</strong>brasC := 0;obtenerPrimeraPa<strong>la</strong>bra(pa<strong>la</strong>bra);mientras no pa<strong>la</strong>braFinal(pa<strong>la</strong>bra) hacersi pa<strong>la</strong>braCapicua(pa<strong>la</strong>bra) entonces nPa<strong>la</strong>brasC := nPa<strong>la</strong>brasC + 1;fsiobtenerPa<strong>la</strong>bra(pa<strong>la</strong>bra)fmientrassi pa<strong>la</strong>braCapicua(pa<strong>la</strong>bra) entonces nPa<strong>la</strong>brasC := nPa<strong>la</strong>brasC + 1fsiescribirEntero(nPa<strong>la</strong>brasC)falgoritmoAcciones pendientes <strong>de</strong> <strong>de</strong>sarrol<strong>la</strong>rEl algoritmo funcionará si <strong>la</strong>s acciones y funciones que se <strong>de</strong>ben <strong>de</strong>sarrol<strong>la</strong>r cumplen <strong>la</strong>s especificacionessiguientes:accion obtenerPrimeraPa<strong>la</strong>bra(sal m: tPa<strong>la</strong>bra){ Pre: en <strong>la</strong> entrada hay <strong>la</strong> secuencia <strong>de</strong> pa<strong>la</strong>bras f <strong>de</strong> <strong>la</strong> frase F. La parte izquierda <strong>de</strong> f estávacía. La parte <strong>de</strong>recha, DF, no está vacía }{ Post: m representa <strong>la</strong> primera pa<strong>la</strong>bra <strong>de</strong> DF. La pa<strong>la</strong>bra obtenida estará en <strong>la</strong> parte izquierda<strong>de</strong> <strong>la</strong> secuencia f }accion obtenerPa<strong>la</strong>bra(entsal m: tPa<strong>la</strong>bra){ Pre: en <strong>la</strong> entrada hay <strong>la</strong> secuencia <strong>de</strong> pa<strong>la</strong>bras f <strong>de</strong> <strong>la</strong> frase F. La parte <strong>de</strong>recha, DF, no estávacía. La anterior pa<strong>la</strong>bra leída está en m }{ Post: m representa <strong>la</strong> primera pa<strong>la</strong>bra <strong>de</strong> DF. La pa<strong>la</strong>bra obtenida estará en <strong>la</strong> parte izquierda<strong>de</strong> <strong>la</strong> secuencia f }funcion pa<strong>la</strong>braFinal(ent m: tPa<strong>la</strong>bra): booleano{ Pre: m = M }{ Post: pa<strong>la</strong>braFinal(M) es cierto si m es <strong>la</strong> última pa<strong>la</strong>bra <strong>de</strong> una frase }funcion pa<strong>la</strong>braCapicua( ent m: tPa<strong>la</strong>bra): booleano{ Pre: m = M }{ Post: pa<strong>la</strong>braCapicua (M) es cierto sólo si m es una pa<strong>la</strong>bra capicúa }2)Segundo nivel: pa<strong>la</strong>bra– Abstracciones utilizadas: ninguna.– I<strong>de</strong>ntificación <strong>de</strong> <strong>la</strong> secuencia: pa<strong>la</strong>bra vista como una secuencia <strong>de</strong> caracteres. La obtención<strong>de</strong> <strong>la</strong>s pa<strong>la</strong>bras primera y siguiente se hará mediante <strong>la</strong> función pre<strong>de</strong>finida leerCaracter() yel reconocimiento <strong>de</strong>l carácter que marca el final será el carácter espacio o <strong>la</strong> coma, o el puntoy coma, o el punto.

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

Saved successfully!

Ooh no, something went wrong!