Pierwsza funkcja oblicza wartość dla danego wielomianu. Dla funkcji kwadratowej, pierwszy element tablicy z numerem 0 to współczynnik c, drugi element to współczynnik b, trzeci to a. Ostatnim argumentem jest ilość elementów w tablicy. Druga funkcja o nazwie "derivative" oblicza określoną wartość dla pochodnej podanego wielomianu. Co o tym myślicie? Działać to działa ale czy dałoby się to lepiej napisać?
#include <stdio.h>
#include <math.h>
double func(const double* data, const double value, int elements)
{
double ToReturn=0;
for(int i=0; i<elements; ++i)
ToReturn+=pow(value, i)*data[i];
return ToReturn;
}
double derivative(const double* data, const double value, int elements)
{
double ToReturn=0;
for(int i=1; i<elements; ++i)
ToReturn+=pow(value, i-1)*data[i]*i;
return ToReturn;
}
int main(void)
{
double tab[]={2, -3, 4, -5};
for(int i=-3;i<=3;++i)
printf("f(%d) = %f\n", i, func(tab, i, 4));
printf("\n");
for(int i=-3;i<=3;++i)
printf("f'(%d) = %f\n", i, derivative(tab, i, 4));
return 0;
}