∫ ∫ ∫ ∫

Anuncio
GUIÓN 5
Recursividad
Informática
2008 - 2009
Implementa las siguientes funciones de forma recursiva
1.
Función que imprima en pantalla, en orden inverso (del último al primero), los N elementos de un
vector de enteros.
2. Función que lea por teclado una secuencia de N caracteres y que los imprima en pantalla en orden
inverso, sin usar vectores.
3. Función que sume los N elementos de un vector.
4. Función que devuelva 1 o 0, según se encuentre o no, un elemento dado en un vector (ambos pasados
como argumentos).
5. Función que evalúe si 2 vectores son iguales o no.
6. Utilizando que
∫
b
a
m
b
a
m
f ( x)dx = ∫ f ( x)dx + ∫ f ( x)dx , siendo m=(a+b)/2, desarrolla una función que calcule
de forma aproximada la integral de la función f(x)=sen(x), a base de dividir el intervalo [a,b] entre dos,
hasta que sea lo suficientemente pequeño (|a-b|<epsilon), en cuyo caso se acepta que
∫
b
a
f ( x)dx ≅ (b − a) f (m) (usa el prototipo: double Integral (double a, double b, double epsilon);).
7. Dada la siguiente definición para un número combinatorio, implementa una función para calcular el
número de combinaciones de m elementos tomados en grupos de n.
 m
  = 1, si n=m;
n
 m
  = m, si n=1;
n
 m   m − 1  m − 1
  = 
 + 
, en el resto de los casos.
 n   n −1  n 
8. El máximo común divisor (Mcd) de dos números enteros positivos p y q, es el mayor entero d que divide a
ambos. Un algoritmo muy conocido para calcularlo es el de Euclides. Éste utiliza dos variables, que
contienen inicialmente a cada uno de los números, y trata de hacer que su contenido sea el mismo. Para
ello, irá restando la menor a la mayor hasta que ambas contengan el mismo valor. En dicho momento, el
valor obtenido en cualquiera de ellas es el máximo común divisor de los dos números iniciales. Por
ejemplo, si P = 18 y Q = 12, el algoritmo hará que P y Q tomen los siguientes valores:
Inicialmente P = 18 y Q = 12 (P > Q => P = P - Q)
Después P = 6 y Q = 12 (Q > P => Q = Q -P)
Después P = 6 y Q = 6 (P = Q => El Mcd es 6)
Diseña el algoritmo anterior siguiendo un enfoque recursivo (usa el prototipo: int Mcd (int P, int Q);).
Descargar