09.05.2013 Views

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

228 Capítulo 10. Introducción a la recursión<br />

(b) La pot<strong>en</strong>cia de un real elevado a un <strong>en</strong>tero positivo:<br />

x0 = 1<br />

xn = (x ∗ x) n<br />

2 , si n > 0 y es par<br />

xn = x ∗ (xn−1 ), si n > 0 y es impar<br />

(c) La cifra i-ésima de un <strong>en</strong>tero n; es decir,<br />

• la última, si i = 0<br />

• la cifra (i-1)-ésima de n div 10, <strong>en</strong> otro caso.<br />

(d) El coefici<strong>en</strong>te binomial, definido recurr<strong>en</strong>tem<strong>en</strong>te:<br />

( n n<br />

0 ) = ( n ) = 1<br />

( n n−1 n−1<br />

k ) = ( k ) = ( k−1 )<br />

6. Sabi<strong>en</strong>do que, para inf, sup ∈ Z, tales que inf ≤ sup, se ti<strong>en</strong>e<br />

sup<br />

i=inf<br />

<br />

ai, si inf = sup<br />

ai = med i=inf ai + sup i=med+1 ai si inf < sup,<br />

(si<strong>en</strong>do med = (inf + sup) div 2) defina una función recursiva para sup<br />

i=inf 1<br />

i 2 , e<br />

inclúyala <strong>en</strong> un programa que halle 100<br />

i=1 1<br />

i 2 ,<br />

7. Use el hecho de que<br />

b<br />

a<br />

f(x)dx =<br />

m<br />

a<br />

f(x)dx +<br />

b<br />

m<br />

f(x)dx<br />

(si<strong>en</strong>do m = a+b<br />

2 ) para desarrollar una función recursiva que halle aproximadam<strong>en</strong>te<br />

la integral definida de la función s<strong>en</strong>(x) a base de dividir el intervalo [a, b]<br />

<strong>en</strong> dos hasta que sea lo bastante pequeño (| b − a |< ɛ), <strong>en</strong> cuyo caso aceptamos<br />

que b<br />

a f(x)dx (b − a) ∗ f(m).<br />

8. Sabi<strong>en</strong>do que 0 es par, es decir,<br />

EsPar(0) ❀ true<br />

EsImpar(0) ❀ false<br />

y que la paridad de cualquier otro <strong>en</strong>tero positivo es la opuesta que la del <strong>en</strong>tero anterior,<br />

desarrolle las funciones lógicas, mutuam<strong>en</strong>te recursivas, EsPar y EsImpar,<br />

que se complem<strong>en</strong>t<strong>en</strong> a la hora de averiguar la paridad de un <strong>en</strong>tero positivo.<br />

10.8 Refer<strong>en</strong>cias bibliográficas<br />

En [Sal93] y [CCM + 93] se ofrec<strong>en</strong> bu<strong>en</strong>os <strong>en</strong>foques de la programación con subprogramas.<br />

El primero de ellos introduce los subprogramas antes incluso que las instrucciones<br />

estructuradas. El segundo ofrece una concreción de los conceptos de programación<br />

modular explicados <strong>en</strong> los l<strong>en</strong>guajes C y Modula-2.

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

Saved successfully!

Ooh no, something went wrong!