lunes, 28 de abril de 2008

La práctica de Legendre

Esta tarde, Jose Vicente Serna y yo hemos planteado una mejora en la práctica de Legendre de http://programacionteleco.umh.es/ en la que medimos el tiempo que tarda el ordenador en calcular la función de Legendre. Básicamente lo que hacemos es medir el tiempo antes de ejecutar, y luego medirlo también después... sólo queda restar ambos tiempos para calcular el tiempo de ejecución real y pasarlo a milisegundos... Aquí va el código:

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
float Legendre(float x, int n)
{ if (n==0) return 1;
if (n==1) return x;
else return(((float)(2*n-1)/(float)n)*x*Legendre(x,n-1)-((float)(n-1)/(float)n)*Legendre(x,n-2));
}


int main(){
int n;

float x;
clock_t t_ini, t_fin;
double secs;
printf("Polinomios de Legendre \n");
printf("Introduce n ");
scanf("%d",&n);
printf("Introduce x ");
scanf("%f",&x);
t_ini = clock();
printf("El polinomio de Legendre vale : %f\n",Legendre(x,n));
t_fin = clock();
secs = (double)(t_fin - t_ini) / CLOCKS_PER_SEC; printf("%.16g milisegundos\n", secs * 1000.0);
getch();}