fork(1) download
  1.  
  2. #include <stdio.h>
  3. #include <math.h>
  4.  
  5. double f(double x) {
  6. return 2* x * sin(x) - cos(x);
  7. }
  8.  
  9. int main(void) {
  10. double a = 0.4; // Начало отрезка
  11. double b = 1.0; // Конец отрезка
  12. double h = 0.05; // Шаг
  13.  
  14. if (h <= 0.0 || a > b) {
  15. fprintf(stderr, "Неверные параметры табулирования\n");
  16. return 1;
  17. }
  18.  
  19. int n = (int)round((b - a) / h); // количество шагов (приближённо)
  20. printf(" x\t\tf(x)\n");
  21. for (int i = 0; i <= n; ++i) {
  22.  
  23. double x = a + i * h;
  24. double y = f(x);
  25. printf("%8.4f\t%12.6f\n", x, y);
  26. }
  27.  
  28. // На случай округлений — вывести правую границу явно, если не выведена
  29. double x_last = a + n * h;
  30. if (fabs(x_last - b) > 1e-9) {
  31. double y = f(b);
  32. printf("%8.4f\t%12.6f\n", b, y);
  33. }
  34.  
  35. return 0;
  36. }
Success #stdin #stdout 0.01s 5280KB
stdin
Standard input is empty
stdout
    x		f(x)
  0.4000	   -0.609526
  0.4500	   -0.508978
  0.5000	   -0.398157
  0.5500	   -0.277569
  0.6000	   -0.147765
  0.6500	   -0.009341
  0.7000	    0.137063
  0.7500	    0.290769
  0.8000	    0.451063
  0.8500	    0.617194
  0.9000	    0.788378
  0.9500	    0.963806
  1.0000	    1.142640