Nie wiem, czy popsułem coś z danymi, które wychodzą poza pętle czy coś, ale dziwne jest dla mnie to, że tablicy result nie moge nawet wyswietlic.
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cmath>
using namespace std;
double arrayFillingFromFile (string fileName, double tab_x[], double tab_z[], const int rozmiar)
{
ifstream file;
file.open(fileName.c_str());
if (file.is_open())
{
for (int i = 0; i < rozmiar; i++)
{
double rubbishBin;
file >> tab_x[i];
file >> rubbishBin;
file >> tab_z[i];
}
file.close();
}
else {cout << endl << "unable to open file";}
return 0;
}
void lagrange (double X[], double Z[], const int rozmiar, double result [])
{
int a, b;
for (int i = 0; i < rozmiar; i++)
{
a = Z[i];
b = 1;
for (int j = 0; j < rozmiar; j++)
{
if (j != i)
{
b = (X[i] - X[j]) * b;
}
}
result[i] = (a/b);
}
}
void test (double tab[], const int rozmiar)
{
cout << endl;
for (int i = 0; i < rozmiar; i++)
{
cout << tab[i] << " ";
}
}
void filling (double tab[], const int rozmiar)
{
for (int i = 0; i < rozmiar; i++)
{
tab[i] = 0;
}
}
int main()
{
double* X;
double* Z;
double* result;
int rozmiar = 20;
X = new double [rozmiar];
Z = new double [rozmiar];
result = new double [rozmiar];
arrayFillingFromFile("D://Pulpit//chuj//xyz odchylenie maks.txt", X, Z, rozmiar);
filling (result, rozmiar);
lagrange(X, Z, rozmiar, result);
test (result, rozmiar);
return 0;
}