fork download
  1. #include <iostream>
  2. #include <math.h>
  3.  
  4. using namespace std;
  5.  
  6. float triangle(int k_max, float omega, float x)
  7. {
  8. float wynik=0;
  9. for(int i=0; i<=k_max; i++)
  10. {
  11. wynik+=8*pow(-1, i)*(sin((2*i+1)*omega*x)/pow(2*i+1, 2))/pow(M_PI, 2);
  12. }
  13. return wynik;
  14. }
  15.  
  16. //typedef float( * wskaznikT )(int, float, float);
  17. //wskaznikT wskaznik= triangle;
  18.  
  19. float derForw(float (*w) (int kmax, float omega, float x), float arg, float stala)
  20. {
  21. float wynik= (w(10, 3.14, arg+stala)-w(10, 3.14, arg))/stala;
  22. return wynik;
  23. }
  24.  
  25. float derCentr(float (*w) (int kmax, float omega, float x), float arg, float stala)
  26. {
  27. float wynik= (w(10, 3.14, arg+stala)-w(10, 3.14, arg-stala))/2*stala;
  28. return wynik;
  29. }
  30.  
  31. float derBack(float (*w) (int kmax, float omega, float x), float arg, float stala)
  32. {
  33. float wynik= (w(10, 3.14, arg)-w(10, 3.14, arg-stala))/stala;
  34. return wynik;
  35. }
  36.  
  37. int main() {
  38. int kmax=3;
  39. float omega=4;
  40. float x=2;
  41. float stala=0.1;
  42. //float (*p)(int kmax, float omega, float x);
  43. //p = triangle;
  44. for(float i=x;i<2.5;i+=0.01)
  45. cout << triangle(10, 3.14, i) << " ";
  46. cout << endl;
  47. for(float i=x;i<2.5;i+=0.01)
  48. cout << derForw(&triangle, i, stala) << " ";
  49.  
  50.  
  51. }
Success #stdin #stdout 0s 4468KB
stdin
Standard input is empty
stdout
-0.00208621 0.0184483 0.038759 0.0586981 0.0782868 0.0977084 0.117223 0.137052 0.157273 0.177786 0.198352 0.218706 0.238672 0.258255 0.277632 0.297084 0.316865 0.337083 0.357647 0.378301 0.398737 0.418735 0.438269 0.457533 0.476854 0.496554 0.516794 0.537489 0.558336 0.578934 0.598971 0.618376 0.637375 0.65641 0.675951 0.696276 0.717317 0.738644 0.759629 0.779713 0.798692 0.816877 0.83505 0.854185 0.875023 0.897632 0.92113 0.943686 0.962848 0.976102 0.98152 
2.00438 2.00257 1.99914 1.99557 1.99345 1.99376 1.99642 2.00031 2.00374 2.00515 2.00385 2.00029 1.99597 1.99278 1.99223 1.9947 1.99929 2.00407 2.00689 2.00633 2.00234 1.99642 1.99106 1.98877 1.99096 1.99722 2.00523 2.01154 2.01293 2.00779 1.99721 1.985 1.97675 1.97775 1.99073 2.01356 2.03814 2.05042 2.03219 1.96389 1.82828 1.61396 1.31811 0.947871 0.520082 0.0593418 -0.405216 -0.843932 -1.23072 -1.54652 -1.78164