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.

18.5. Ejercicios 423<br />

3. Calcule la complejidad <strong>en</strong> tiempo del sigui<strong>en</strong>te algoritmo de sumar:<br />

function Suma (m, n: integer): integer;<br />

{PreC.: n >= 0}<br />

{Dev. m + n }<br />

var<br />

i: integer;<br />

begin<br />

for i:= 1 to n do<br />

m:= Succ (m)<br />

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

4. Calcule ahora el coste del sigui<strong>en</strong>te algoritmo de multiplicar,<br />

function Producto (a, b: integer): integer;<br />

{PreC.: b >= 0}<br />

{Dev. a * b}<br />

var<br />

i, acumProd: integer;<br />

begin<br />

acumProd:= 0;<br />

for i:= 1 to b do<br />

acumProd:= acumProd + a<br />

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

<strong>en</strong> los tres casos sigui<strong>en</strong>tes:<br />

(a) Tal como se ha descrito.<br />

(b) Cambiando, <strong>en</strong> el cuerpo de la instrucción for, la expresión acumProd + a<br />

por la llamada Suma(acumProd, a).<br />

(c) Cambiando la expresión acumProd + a de antes por la llamada Suma(a,<br />

acumProd).<br />

5. Considerando los problemas sigui<strong>en</strong>tes, esboce algoritmos iterativos para resolverlos<br />

e indique su complejidad:<br />

(a) Resolución de una ecuación de segundo grado.<br />

(b) Cálculo del coci<strong>en</strong>te y el resto de la división <strong>en</strong>tera mediante restas sucesivas.<br />

(c) Cálculo de un cero aproximado de una función mediante el método de bipartición.<br />

(d) Suma de las cifras de un número <strong>en</strong>tero positivo.<br />

(e) Determinación de si un número es primo o no mediante el tanteo de divisores.<br />

(f) Cálculo de n<br />

i=1 i+1<br />

i!<br />

, difer<strong>en</strong>ciando dos versiones:<br />

i. Una, <strong>en</strong> la que cada vez se halla un término del sumatorio.<br />

ii. Otra, donde cada factorial del d<strong>en</strong>ominador se halla actualizando el del<br />

término anterior.

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

Saved successfully!

Ooh no, something went wrong!