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.

10.7. Ejercicios 227<br />

Por ello, cuando sean posibles soluciones de ambos tipos, 7 es preferible la iterativa<br />

a la recursiva, por resultar más económica su ejecución <strong>en</strong> tiempo y memoria.<br />

10.7 Ejercicios<br />

1. Escriba una función recursiva para calcular el término n-ésimo de la secu<strong>en</strong>cia de<br />

Lucas: 1, 3, 4, 7, 11, 18, 29, 47, ...<br />

2. Dado el programa<br />

Program Invertir (input, output);<br />

{Se lee una línea del input y se escribe invertida}<br />

procedure InvertirRec;<br />

var<br />

c: char;<br />

begin<br />

Read(c);<br />

if c ’.’ th<strong>en</strong> begin<br />

InvertirRec;<br />

Write(c)<br />

<strong>en</strong>d<br />

<strong>en</strong>d; {InvertirRec}<br />

begin {Invertir}<br />

WriteLn(’Teclee una cad<strong>en</strong>a de caracteres ("." para finalizar)’);<br />

InvertirRec<br />

<strong>en</strong>d. {Invertir}<br />

Analice su comportami<strong>en</strong>to y estudie qué resultado dará para la secu<strong>en</strong>cia de<br />

<strong>en</strong>trada “aeiou.”, describi<strong>en</strong>do la evolución de la pila recursiva (véase el apartado<br />

10.2). Obsérvese que el uso de esta pila recursiva nos permite recuperar los<br />

caracteres <strong>en</strong> ord<strong>en</strong> inverso al de su lectura.<br />

3. Escriba una función recursiva para calcular el máximo común divisor de dos<br />

números <strong>en</strong>teros dados aplicando las propiedades recurr<strong>en</strong>tes del ejercicio 2 del<br />

capítulo 9.<br />

4. Escriba una versión recursiva del cálculo del máximo común divisor de dos números<br />

<strong>en</strong>teros por el método de Euclides.<br />

5. Defina subprogramas recursivos para los sigui<strong>en</strong>tes cálculos:<br />

(a) (1 + 1<br />

2<br />

1<br />

1<br />

1 1<br />

+ . . . + n ) = (1 + 2 + . . . + n−1 ) + n<br />

7 Como es, por ejemplo, el caso de la función factorial.

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

Saved successfully!

Ooh no, something went wrong!