// nactení standardnich knihoven #include #include // definice konstant - jejich hodnoty mozne menit podle potreby // EPS - maximalni chyba numericke integrace // JMAX - maximalni pocet kroku (deleni intervalu) integrace #define EPS 1.0e-5 #define JMAX 20 // funkce, ktera ma byt integrovana float func(float x) { float a=1,b=0,c=2; return a*pow(x,c)+b; } // dalsi pouzite funkce (procedury) v programu float qtrap(float (*)(float),float,float); float trapzd(float (*)(float),float,float,int); // hlavni program int main() { int n; float a,b,ntgrl; printf("zadej meze integralu:"); printf("\ndolni mez a="); scanf("%f",&a); printf("horni mez b="); scanf("%f",&b); ntgrl=qtrap(func,a,b); printf("\nvysledek: %f, max.r.chyba: %1.1e",ntgrl,EPS); return 0; } // procedura, ktera rozdeli interval integrace [a,b] // funkce func(x) na pozadujici pocet useku n a // vracejici hodnotu lichobeznihove metody na techto usecich float trapzd(float (*func)(float),float a,float b,int n) { float x,tnm,sum,del; static float s; int it,j; if (n==1) { return (s=0.5*(b-a)*(func(a)+func(b))); } else { for (it=1,j=1;j5) if (fabs(s-olds)