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 51 <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>nteaccion escribirFacturas(sal f: tFacturas){ Pre: f = F }{ Post: crea una secuencia <strong>de</strong> salida con <strong>la</strong> estructura , don<strong>de</strong> n i es unasubsecuencia <strong>de</strong> caracteres que representa a un propietario <strong>de</strong> páginas F y acaba en b<strong>la</strong>nco, ei i es una subsecuencia <strong>de</strong> caracteres dígitos acabada en b<strong>la</strong>nco que representa el importe totalque hay en F para el propietario n i }2)Segundo nivel: Páginas y FacturasEn este nivel tenemos dos abstracciones: pagina y facturas.a) Pasemos primero a trabajar <strong>la</strong> abstracción página:– Abstracciones utilizadas: pa<strong>la</strong>bra.– I<strong>de</strong>ntificación secuencia: página vista como una secuencia <strong>de</strong> pa<strong>la</strong>bras. La obtención <strong>de</strong>los elementos primero y siguiente se hará por medio <strong>de</strong> <strong>la</strong>s acciones leerPrimeraPa<strong>la</strong>bra yleerPa<strong>la</strong>bra, y el reconocimiento <strong>de</strong> <strong>la</strong> pa<strong>la</strong>bra que marca el final será <strong>la</strong> pa<strong>la</strong>bra “FinTexto-HTML”. En el caso especial <strong>de</strong> estar en <strong>la</strong> última página, ésta contendrá sólo “FinPáginas”.Definición <strong>de</strong> los tiposLo único que interesa <strong>de</strong> una página es conocer a su propietario y el importe <strong>de</strong> <strong>la</strong> factura.En el caso <strong>de</strong> <strong>la</strong> última página, lo único que interesa es saber que se trata <strong>de</strong> <strong>la</strong> última. Definiríamos,pues, el tipo tPagina <strong>de</strong> <strong>la</strong> forma siguiente:tipotPagina = tup<strong>la</strong>propietario: tPa<strong>la</strong>bra;importe: real;final: booleano;ftup<strong>la</strong>ftipoP<strong>la</strong>nteamientos y solucionesI<strong>de</strong>ntificación <strong>de</strong>l esquema: recorrido con i<strong>de</strong>ntificación previa <strong>de</strong> si se trata <strong>de</strong> <strong>la</strong> última página.accion obtenerPagina (sal p: tPagina)varpa<strong>la</strong>bra, pa<strong>la</strong>braNoI<strong>de</strong>ntificados, pa<strong>la</strong>braFinPaginas, pa<strong>la</strong>braFinTextoHTML, pa<strong>la</strong>bra-Propiedad: tPa<strong>la</strong>bra;fvarinicializaPa<strong>la</strong>braNoI<strong>de</strong>ntificados(pa<strong>la</strong>braNoI<strong>de</strong>ntificados);inicializaPa<strong>la</strong>braFinPaginas(pa<strong>la</strong>braFinPaginas);inicializaPa<strong>la</strong>braFinTextoHTML(pa<strong>la</strong>braFinTextoHTML);inicializaPa<strong>la</strong>braPropiedad(pa<strong>la</strong>braPropiedad);p.Importe := 0.0;p. Propietario := pa<strong>la</strong>braNoI<strong>de</strong>ntificadas; { Lo inicializamos en “NoI<strong>de</strong>ntificados” por siacaso no tiene propietario }leerPrimeraPa<strong>la</strong>bra(pa<strong>la</strong>bra);si pa<strong>la</strong>brasIguales(pa<strong>la</strong>bra, pa<strong>la</strong>braFinPaginas) entoncesp.final := ciertosinop.final := falsomientras no pa<strong>la</strong>brasIguales(pa<strong>la</strong>bra, pa<strong>la</strong>braFinTextoHTML) hacersi pa<strong>la</strong>brasIguales(pa<strong>la</strong>bra,pa<strong>la</strong>braPropiedad) entoncesleerPa<strong>la</strong>bra(pa<strong>la</strong>bra);p.Propietario := pa<strong>la</strong>brasinocontabilizaPa<strong>la</strong>bra(pa<strong>la</strong>bra, p.Importe);leerPa<strong>la</strong>bra(pa<strong>la</strong>bra)fsifmientrasfsifaccion { obtenerPagina }

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

Saved successfully!

Ooh no, something went wrong!