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
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 37 <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>nteEjercicios <strong>de</strong> autoevaluación1. Diseñar un algoritmo que <strong>de</strong>scubra cuántas veces aparece “LA” en una frase escrita enmayúscu<strong>la</strong>s y terminada con un punto en el canal <strong>de</strong> entrada. Por ejemplo, en <strong>la</strong> entrada tenemos<strong>la</strong> frase siguiente:BLANCA REGALA A LAIA UNA MANTA.El programa <strong>de</strong>berá dar como resultado: 3, ya que encontramos ‘LA’ en los siguientes casos:BLA 1 NCA REGALA 2 A LA 3 IA UNA MANTA.2. Dado un polígono especificado por una secuencia <strong>de</strong> vértices en el or<strong>de</strong>n <strong>de</strong> <strong>la</strong> serie <strong>de</strong> sucontorno, diseñad un algoritmo que encuentre su área. La secuencia termina con el primervértice con el que ha empezado. Como mínimo, en <strong>la</strong> entrada están los datos <strong>de</strong> un triángulo.Cada vértice se especifica por dos coor<strong>de</strong>nadas reales. Por ejemplo, si <strong>la</strong> secuencia es:3.0 3.0 2.0 6.0 7.0 11.0 12.0 9.0 3.0 3.0El polígono que representa es:Un amigo a quien le gusta <strong>la</strong> geometría nos dice que el cálculo <strong>de</strong>l área <strong>de</strong> un polígono, <strong>de</strong>scritopor sus vértices y el contorno que <strong>de</strong>limitan, se pue<strong>de</strong> calcu<strong>la</strong>r mediante <strong>la</strong> fórmu<strong>la</strong>:n( x i + 1 – x∑i ) ( y i + 1 + y i )-------------------------------------------------------2i = 1don<strong>de</strong> n es el número <strong>de</strong> aristas y cuando i = n, i + 1 es en realidad 1 (utilizar el módulo es <strong>la</strong>manera correcta <strong>de</strong> hacerlo, pero no lo ponemos para que <strong>la</strong> fórmu<strong>la</strong> tenga una mayor c<strong>la</strong>ridad).En nuestro ejemplo, el área A <strong>de</strong>l polígono sería:A = 1/2 ((2 − 3) (6 + 3) + (7 − 2) (11 + 6) + (12 − 7)(9 + 11) + (3 − 12)(3 + 9))A = 1/2 (−9 + 85 + 100 − 108) = 68/2 = 34Podría darse el caso <strong>de</strong> que el resultado fuese negativo, pero si le cambiásemos el signo el valor<strong>de</strong>l área continuaría siendo correcto. Disponemos <strong>de</strong> <strong>la</strong> función abs(r), que da el valor absoluto