File: Stare vježbe/vjezbe10/64__pfunkcije.c

  1. /*
  2.   64__pfunkcije.c
  3.   Uvodjenje pointera na funkciju.
  4.   -----
  5.   Pointer na funkciju deklarira se na slijedeci nacin:
  6.   povratni_tip (*ime)(tip_1 arg_1, ..., tip_n arg_n);
  7.   Pri tome je onda ime pokazivac na funkciju koja uzima n argumenata
  8.   tipa tip_1,...,tip_n i vraca vrijednost tipa povratni_tip.
  9. */
  10.  
  11. #include <stdio.h>
  12. #include <math.h>
  13.  
  14. float f(float);
  15. float g(float);
  16. float h(float);
  17.  
  18. float integriraj(float a, float b, float (*fp)(float)) {
  19. return 0.5*((*fp)(a)+(*fp)(b))*(b-a);
  20. }
  21.  
  22. int main() {
  23. printf("Numericko integriranje trapeznom formulom na intervalu [0,1]:\n");
  24. printf("f(x)=1 -> %f\n", integriraj(0, 1, f));
  25. printf("g(x)=x -> %f\n", integriraj(0, 1, g));
  26. printf("h(x)=x*x -> %f\n", integriraj(0, 1, h));
  27. printf("sin -> %f\n", integriraj(0, 1, sinf));
  28. printf("cos -> %f\n", integriraj(0, 1, cosf));
  29.  
  30. return 0;
  31. }
  32.  
  33. float f(float x) {
  34. return 1;
  35. }
  36.  
  37. float g(float x) {
  38. return x;
  39. }
  40.  
  41. float h(float x) {
  42. return x*x;
  43. }
  44.