//============================================================================ // Name : ej9.cpp // Author : PC // Description : Programa para calcular la interpolación de Lagrange // (método para interpolar una serie de N puntos (xi, yi). Datos: // Número de puntos N. // Puntos a interpolar (x1, y1), (x2, y2),....,(xN, yN). // Valor x a interpolar. /* Pseudocodigo: lee datos repite lee x lag = lagrange (np, puntos, x) imprime lag lee respuesta mientras (respuesta == 's') float lagrange(np, puntos,x) int i,j; float suma=0; float producto; for (j=0; j #include #include using namespace std; float lagrange( int, float [], float [], float); void lee_datos(int *, float [], float []); int main(int argc, char *argv[]) { const int dim = 20; float pto_x[dim], pto_y[dim], x; int nrop; char resp; lee_datos(&nrop, pto_x, pto_y); do { cout << "Ingresa valor x = " ; cin >> x; cout << "Valor interpolado = " << lagrange(nrop,pto_x,pto_y,x) << endl; cout << "Desea continuar? (s / n): "; cin >> resp; } while (resp == 's'); cout << "Fin de programa\n"; return 0; } void lee_datos(int *np, float ptox[], float ptoy[]) { cout << "Ingresa numero de puntos (max. 20) : "; cin >> *np ; cout << "Ingresa coordenada x y punto " << endl; for (int i=1; i<= (*np); i++) { cout << i << ": "; cin >> ptox[i-1] >> ptoy[i-1]; } } float lagrange( int np, float arr_x[], float arr_y[], float x ) { int i,j; float suma=0; float producto; for (j=0; j