2Eva_IIT2012_T1 Recursiva Multi

2da Evaluación II Término 2012-2013, Enero 29, 2013 /ICM00794
TODOS LOS TEMAS SE PRESENTAN EN MATLAB

Tema 1 (20 puntos). La siguiente definición recursiva permite calcular la multiplicación de dos números enteros no negativos.

multi(p,q) = \begin{cases} 0, & q=0\\ p+multi(p,q-1), & q>0\end{cases}
  • Escriba una función recursiva multi(p,q).
  • Desarrolle una prueba de escritorio para multi(3,5)

Rúbrica: literal a (15 puntos), literal b (5 puntos)

2Eva_IIT2011_T1 Algoritmo de Euclides MCD

2da Evaluación II Término 2011-2012, Enero 31, 2012 /ICM00794

Tema 1 (20 puntos). El Algoritmo de Euclides es considerado el más antiguo y no trivial para encontrar el “máximo común divisor” (mcd) entre dos números a y b.
El paso esencial que garantiza la validez del algoritmo consiste en mostrar que el mcd de a y b, (a > b  y b≥0), es:

  • igual a a si b es cero;
  • en otro caso es igual al mcd entre b y el residuo de a dividido por b, si b > 0.

Realice una función recursiva mcdeuclides(a,b) siguiendo el algoritmo de Euclides, y muestre una prueba de escritorio para a=15 y b=6.

Rúbrica: Definición de función (5 puntos), Recursividad (10 puntos), Prueba de escritorio (5puntos).

2Eva_IIT2007_T4 Fibonacci recursiva

2da Evaluación II Término 2007-2008. Febrero 12, 2008 /ICM00794

Tema 4. (20 puntos) Escriba una función recursiva que permita calcular la el término i de la secuencia de Fibonacci.

fibo(i)= \begin{cases} 1,& i=1\\1,& i=2 \\fibo(i-1)+fibo(i-2), & i>2 \end{cases}

Elabore un programa que usando fibo(i) indique cuántos términos son necesarios para que su acumulado sea mayor que un valor m dado.

2Eva_IT2007_T1 Funciones par e impar recursivas

2da Evaluación I Término 2007-2008. Agosto 28, 2007 /ICM00794

Tema 1. (20 puntos) Sean las funciones recursivas:

par(n) = \begin{cases} 1, & n=0\\impar(n-1), & n>0 \end{cases} impar(n) = \begin{cases} 0, & n=0\\par(n-1), & n>0 \end{cases}
Ejemplos: 
 >> par (4) retorna 1
 >> impar (4) retorna 0
 >> par (5) retorna 0
 >>impar (5) retorna 1

a) Escriba las funciones par e impar, dichas funciones retornan 1 si el número tiene la característica de la función llamada.

b) Escriba un programa principal donde se generen de forma aleatoria n números enteros comprendidos entre 10 y 50. Luego, utilizando las funciones anteriores, determine si la mayoría de los números generados fueron pares. El número n debe ser pedido al usuario.

2Eva_IT2005_T2 Calcular potencia recursiva

Final I Término 2005 – 2006. Agosto 28, 2005 /ICM00794

Tema 2. (20puntos) Escriba en matlab una función recursiva Potencia(base,exponente) que permita calcular la potencia de un número.
La función recibe dos parámetros: base y exponente, entregando como resultado la operación antes mencionada (10 puntos).

baseexponente = 24=2.23=2.2.22=2.2.2.2

Escriba en matlab un programa principal que evalúe un polinomio de grado n. Ingrese los coeficientes en un vector a(i) y un valor x para evaluar el polinomio de la forma:

p(x) = an.xn + an-1.xn-1+ … + a1. x1 + a0

En los cálculos de potencias se debe usar la función potencia(base, exponente) (10 puntos).

2Eva_IIT2004_T1 Calcular raíz cúbica recursiva

Final II Término 2004 – 2005. Febrero, 2005 /ICM00794

Tema 1. Para Calcular la raíz cúbica x de un número n se puede usar repetidamente la siguiente fórmula:

x = (2x3+n)/(3x2) 
Si comienza con un valor inicial de x←1, 
esta fórmula produce valores de x cada vez más cercanos a la raíz cúbica de n.

Escriba una función cubic(n) que entregue con 4 decimales exactos la raíz cúbica de un número dado n.
La función debe incluir una repetición y salir cuando la diferencia entre el valor de n y el valor dex3 sea menor a 0.0001.

Escriba un programa de prueba para obtener las raíces cúbicas de los números n = 1, 2, 3, 4 … 20

2Eva_IIIT2003_T2 Raíz cuadrada por Newton

Final III Término 2003 – 2004. Abril 23, 2004 /ICM00794

Tema 2. La raíz cuadrada de un número real X mayor que 0 se puede obtener a través de una aproximación n-ésima de una función f según el método de Newton, el cual establece lo mostrado:

f(1) = X/2
f(2) = 0.5(f(1) + X/f(1))
f(3) = 0.5(f(2) + X/f(2))
...
f(n) = 0.5(f(n-1) + X/f(n-1))

a) Escriba una función recursiva f que reciba dos parámetros: X (el número del cual se desea calcular la raíz cuadrada) y n (el número de aproximaciones).
Esta función debe retornar la raíz cuadrada de X para la n-ésima aproximación.

b) Escriba un programa en C/C++ que permita el ingreso de un número real y que, mediante sucesivas llamadas a la función f, muestre los resultados del cálculo de la raíz cuadrada de dicho número para cada una de las 10 primeras aproximaciones (n = 1, 2, 3, .. , 10).

2Eva_IIT2003_T3 Funciones eudoxus recursivas

Final II Término 2003 – 2004. Febrero 10, 2004 /ICM00794

Tema 3. Los números de Eudoxus se definen mediante la siguiente formulación:

{x[0] = 1
{x[i] = y[i] + y[i-1] , i>=1

{y[0] = 0
{y[i] = x[i-1] + y[i-1] , i>=1

a) Escriba las funciones recursivas eudoxusX(i) y eudoxusY(i) que permitan generar cada par ordenado(xi, yi).

b) Adicionalmente escriba un programa de prueba que, utilizando las funciones anteriores, muestre los pares ordenados generados recursivamente para 0≤in, donde n es un valor entero leído previamente.

2Eva_IT2003_T2 Función recursiva f(n)

Final I Término 2003 – 2004. Septiembre 02, 2003 /ICM00794

Tema 2. (25 puntos) Escriba una función recursiva f en C/C++ tal que:

f(n) ={1/2, si n=0 ó n=1
      {1/2*[f(n-1) + f(n-2)], si n es impar mayor que 1
      {1/2*[f(n-1) - f(n-2)], si n es par mayor que 1

Escriba un programa en C/C++ que determine el mayor valor de la función f para n=0, 1, 2, 3, 4, 5

2Eva_IIT2001_T3 Flujo de ahorro para n años

Final II Término 2001 – 2003. Febrero 5, 2002 /ICM00794

Tema 3. El flujo de efectivo Fk se evalúa recursivamente considerando el flujo neto anterior Fk-1 y las tasas i1, i2 tal como se indica en la fórmula.

Fk ={(1 + i1)Fk-1+Ck, Fk-1≥0, k>0
    {(1 + i2)Fk-1+Ck, Fk-1<0, k>0
    { 0 , k=0

En la fórmula, C representa un arreglo de los valores del flujo para n años que operan en un determinado negocio (los valores negativos indican desembolsos)

Ejemplo:
C0 C1 C2 C3 C4 Cn
-500 300 600 -200 300 -200 -300 350
  • Escriba una función recursiva para poder utilizar FK.
  • Escriba un programa principal que lea i1, i2, y el arreglo Ck, de n elementos y llame a la función anterior para calcular FK.
  • Posteriormente, en el mismo programa asigne a i1, el valor de 0.1 y pida por teclado dos valores para i2. Evalúe FK para los casos e identifique si hubo un cambio de signo.

Nota: Considere las variables float C[20], i1, i2 como globales.


propuesta: sol_py