Приближённое вычисление определённого интеграла. Исправление ошибок в коде - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Цель программы: вычислить неопределённый интеграл некоторой функции приближённо. Ошибки в участке кода, содержащем эту самую математическую функцию (у меня квадратичная). Объясните, пожалуйста, как их исправить. Перевод оповещений компилятора (в комментариях) мне ни о чём не сказал. Заранее спасибо.
#include <stdio.h>
 
double f (double x) {
    f = x*x; /*в этой строке ошибка: lvalue required as left operand of assignment*/
    return f; /*тут тоже ошибка: incompatible types when returning type 'double (*)(double)' but 'double' was expected*/
};
 
int main() {
    double a, b; /*начало и конец отрезка, на котором надо найти интеграл*/
    unsigned int n; /*число отрезков, на которые разбиваем [a; b] для вычисления интеграла*/
    double h, s; /*шаг и сумма, в которую накапливаем значение*/
    unsigned int i; /*счётчик*/
 
    scanf("%f %f %d", &a, &b, &n);
 
    h = (b - a)/n;
    s=0;
 
    for (i=0; i<n; i++) {
        s += f(a+i*h); /*увеличиваем сумму на значение функции в точке a+i*h*/
    };
 
    s *= h;
 
    printf("%f", s);
 
    return 0;
}

Решение задачи: «Приближённое вычисление определённого интеграла. Исправление ошибок в коде»

textual
Листинг программы
    for (i=0; i<n; i++) {
        s += f(a+i*h) * h;
    };

Объяснение кода листинга программы

  1. Начинается цикл for, который выполняется n раз.
  2. Переменная i инициализируется нулем, а n - это количество раз, которые нужно выполнить цикл.
  3. На каждой итерации цикла в переменную s добавляется произведение f(a+i*h) и h.
  4. Значение переменной h остается неизменным на протяжении всего цикла.
  5. Функция f(a+ih) вычисляет значение функции f в точке a+ih.
  6. Значение переменной a также остается неизменным на протяжении всего цикла.
  7. Цикл завершается, когда значение i становится равным n.
  8. Значение переменной s будет содержать приближенное значение определенного интеграла.

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы