/* fichero interpol.c */ #include #include #include #define PI 3.14159265358979 void main(void) { double vector[91]; int x1, x2; double y1, y2; double x, y, a, b, radianes; FILE *fi; int i; fi = fopen("tabla.d", "r"); for (i=0; i <= 90; i++) fscanf(fi, " %lf", &vector[i]); printf("Este programa calcula el valor del seno de un ángulo\n"); printf("por interpolación entre dos valores.\n"); printf("\nIntroduzca el valor del ángulo en grados:\n"); printf("valor: "); scanf("%lf", &x); printf("\n"); /* Valores entre los que interpolar */ x1 = (int)x; x2 = x1 + 1; y1 = vector[x1]; y2 = vector[x2]; /* Cálculo del valor interpolado */ a = (y2 - y1)/(x2 - x1); b = (y1*x2 - y2*x1)/(x2 - x1); y = a*x + b; printf("El valor del seno de %6.2lf es %18.15lf.\n", x, y); radianes = x*PI/180.0; printf("%s%6.2lf es %18.15lf%s", "El valor del seno de ", x, sin(radianes), ", calculado con math.h"); }