#include <stdio.h>
#include <math.h>
double f(double x) {
return 2* x
* sin(x
) - cos(x
); }
int main(void) {
double a = 0.4; // Начало отрезка
double b = 1.0; // Конец отрезка
double h = 0.05; // Шаг
if (h <= 0.0 || a > b) {
fprintf(stderr
, "Неверные параметры табулирования\n"); return 1;
}
int n = (int)round((b - a) / h); // количество шагов (приближённо)
for (int i = 0; i <= n; ++i) {
double x = a + i * h;
double y = f(x);
printf("%8.4f\t%12.6f\n", x
, y
); }
// На случай округлений — вывести правую границу явно, если не выведена
double x_last = a + n * h;
if (fabs(x_last
- b
) > 1e-9) { double y = f(b);
printf("%8.4f\t%12.6f\n", b
, y
); }
return 0;
}
CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8bWF0aC5oPgoKZG91YmxlIGYoZG91YmxlIHgpIHsKICAgIHJldHVybiAyKiB4ICogc2luKHgpIC0gY29zKHgpOwp9CgppbnQgbWFpbih2b2lkKSB7CiAgICBkb3VibGUgYSA9IDAuNDsgICAgLy8g0J3QsNGH0LDQu9C+INC+0YLRgNC10LfQutCwCiAgICBkb3VibGUgYiA9IDEuMDsgICAgLy8g0JrQvtC90LXRhiDQvtGC0YDQtdC30LrQsAogICAgZG91YmxlIGggPSAwLjA1OyAgIC8vINCo0LDQswoKICAgIGlmIChoIDw9IDAuMCB8fCBhID4gYikgewogICAgICAgIGZwcmludGYoc3RkZXJyLCAi0J3QtdCy0LXRgNC90YvQtSDQv9Cw0YDQsNC80LXRgtGA0Ysg0YLQsNCx0YPQu9C40YDQvtCy0LDQvdC40Y9cbiIpOwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgIGludCBuID0gKGludClyb3VuZCgoYiAtIGEpIC8gaCk7IC8vINC60L7Qu9C40YfQtdGB0YLQstC+INGI0LDQs9C+0LIgKNC/0YDQuNCx0LvQuNC20ZHQvdC90L4pCiAgICBwcmludGYoIiAgICB4XHRcdGYoeClcbiIpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbjsgKytpKSB7CgogICAgZG91YmxlIHggPSBhICsgaSAqIGg7CiAgICBkb3VibGUgeSA9IGYoeCk7CiAgICBwcmludGYoIiU4LjRmXHQlMTIuNmZcbiIsIHgsIHkpOwp9CgovLyDQndCwINGB0LvRg9GH0LDQuSDQvtC60YDRg9Cz0LvQtdC90LjQuSDigJQg0LLRi9Cy0LXRgdGC0Lgg0L/RgNCw0LLRg9GOINCz0YDQsNC90LjRhtGDINGP0LLQvdC+LCDQtdGB0LvQuCDQvdC1INCy0YvQstC10LTQtdC90LAKZG91YmxlIHhfbGFzdCA9IGEgKyBuICogaDsKaWYgKGZhYnMoeF9sYXN0IC0gYikgPiAxZS05KSB7CiAgICBkb3VibGUgeSA9IGYoYik7CiAgICBwcmludGYoIiU4LjRmXHQlMTIuNmZcbiIsIGIsIHkpOwp9CgpyZXR1cm4gMDsKfQ==