Práctica sobre Funciones

Quick-sort


Se denominan funciones recursivas a aquellas que se llaman a sí mismas. Un ejemplo típico es el método de ordenación quick-sort, el juego denominado Torres de Hanoi, etc.


El resultado del factorial de un número entero es un número entero mucho más grande (long), que puede sobrepasar el rango de los enteros (int) si n es grande.

  • Método iterativo
long factorial(int n){
	long resultado=1;
	for(int i=1; i<=n; i++){
		resultado*=i;
	}
	return resultado;
} 
  • Método recursivo
long factorial(int n){
	if(n==0) return 1;
	return (n*factorial(n-1));
}


Curva de Koch

En la generación del copo de nieve de Koch podemos ver que cada segmento es sustituido por cuatro segmentos cada uno de ellos de un tercio de la longitud del anterior.


El código de la función recursiva generaKoch que nos traza la curva de Koch es la siguiente:

void generaKoch(int nivel, double distancia){
	if(nivel==0){
		tortuga.traza(distancia);
	}else{
		generaKoch(nivel-1, distancia/3);
		tortuga.gira(60.0);
		generaKoch(nivel-1, distancia/3);
		tortuga.gira(-120.0);
		generaKoch(nivel-1, distancia/3);
		tortuga.gira(60.0);
		generaKoch(nivel-1, distancia/3);
	}
}


Curva de Peano
La función recursiva que genera la curva de Peano la podemos ver en la figura para el nivel 0 (en la parte inferior) y para el nivel 1 (en la parte superior),
y la podemos dibujar en el applet de la geometría de la tortuga.

El código de esta función es el siguiente:

void generaPeano(int nivel, double distancia){
	if(nivel==0)
		tortuga.traza(distancia);
	else{
		generaPeano(nivel-1, distancia/3);
		tortuga.gira(-90.0);
		generaPeano(nivel-1, distancia/3);
		tortuga.gira(90.0);
		generaPeano(nivel-1, distancia/3);
		tortuga.gira(90.0);
		generaPeano(nivel-1, distancia/3);
		generaPeano(nivel-1, distancia/3);
		tortuga.gira(90.0);
		generaPeano(nivel-1, distancia/3);
		tortuga.gira(90.0);
		generaPeano(nivel-1, distancia/3);
		tortuga.gira(90.0);
		generaPeano(nivel-1, distancia/3);
		generaPeano(nivel-1, distancia/3);
	}
}

Comentarios

Entradas populares