Указатель на функцию: Вычислить интеграл методом Симпсона - C (СИ)

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

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

Вычислить интеграл методом Симпсона . Параметры задачи: a, c, d, n>=6. Задание − написать программу, содержащую следующие функции: • функцию ввода исходных данных; • функцию, реализующую заданный алгоритм расчета; • функцию вывода расчетных данных: • функцию f(). Функция main() используется только для вызова первых трех функций. Функция f() передаётся в функцию, реализующую заданный алгоритм расчета посредством указателя; N, M – экстенты массива; a и b передаются в функцию как глобальные переменные. Исходные данные ввести с клавиатуры. По неизвестной мне причине не работает
Листинг программы
  1. #include<stdio.h>
  2. #include<math.h>
  3. #include<conio.h>
  4. #define n 6
  5.  
  6. double S=0, a, x, c, d, h;
  7.  
  8. double F(double x)
  9. {
  10. double f, a;
  11. f=x/pow(sin(a*x), 2);
  12. return f;
  13. }
  14.  
  15. double vvod(double a, double c, double d)
  16. {
  17. printf("a=");
  18. scanf("%lf", a);
  19. printf("c=");
  20. scanf("%lf", c);
  21. printf("d=");
  22. scanf("%lf", d);
  23. h=(d-c)/n;
  24. }
  25. double simpson(double x, double c, double d)
  26. { x=c+h;
  27. while(x<d)
  28. {
  29. S=S+4*F(x);
  30. x+=h;
  31. if(x>=d) break;
  32. S=S+2*F(x);
  33. x+=h;
  34. }
  35. S=(h/3)*(S+F(c)+F(d));
  36. printf("%f", S);
  37. return 0;
  38. }
  39.  
  40. int main()
  41. {
  42. double S=0, a, x, c, d, h;
  43. int i;
  44. vvod(a, c, d);
  45. i=simpson(x, c, d);
  46. }

Решение задачи: «Указатель на функцию: Вычислить интеграл методом Симпсона»

textual
Листинг программы
  1.     double vivod(double S )  // 46 строка
  2.     {
  3.     printf("S=%f", S);
  4.     }

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

В данном коде реализована функция с именем vivod, которая принимает на вход аргумент типа double, обозначенный как S. Внутри функции происходит вывод значения переменной S на экран с помощью функции printf. Код функции выглядит следующим образом:

  1. double vivod(double S ) // 46 строка
  2. {
  3. printf(S=%f, S);
  4. } Следует отметить, что в данном коде отсутствует какая-либо логика вычисления интеграла методом Симпсона. Вероятно, этот код является только частью полной реализации и не содержит всех необходимых операций для вычисления интеграла.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

12   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы