Протабулировать функцию

Протабулировать функцию y=1-cos(2*x)/2 на промежутке от a до b, разбив его на 30 частей.

#include <windows.h>
#include<math.h>
#include <stdio.h>
using namespace std;
int main()
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    int a, b, t, i;
    double y;
    printf("Enter a=");
    scanf_s("%i", &a);
    printf("Enter b=");
    scanf_s("%i", &b);
    int sh = (b - a) / 30;
    printf("%i", sh);
    printf("\n");
    for (i = a; i <= b; i += sh)
    {
        y = 1 - cos(2 * i) / 2;
        printf("\nX=%i", i);
        printf("\tF(x)=%3.3f", y);
    }
}

Ответы (1 шт):

Автор решения: Ildar

шаг h определяем следующим образом h = (b - a) / 'на сколько частей делим' далее в цикле вызываем f с шагом h от a до b

#include <iostream>

double f(double x)
{
  return 1 - cos(2 * x) / 2;
}

int main()
{
  double a = 15;
  double b = 30;
  double h = (b - a) / 30;
  double eps = 1e-6;

  b += h / 2;
  for (double x = a; x < b + eps; x += h) {
    std::cout << "f(" << x << ")" << '\t' << "= " << f(x) << '\n';
  }

  return 0;
}

eps опционально установите самостоятельно

→ Ссылка