Вычислить и вывести на экран значение математической функции F - C (СИ)

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

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

Вообще задача такая: Вычислить и вывести на экран значение математической функции F. Вычисление значения функции F необходимо выполнить с использованием функции

calculate

, в которую передаются четыре параметра:

x, a, b, c

, которые являются целыми положительными числами и вводятся с клавиатуры. Вывод параметров и результата вычисления функции необходимо вынести в отдельную функцию

print

. F=1)

ax2+b2x

, если

|a|>3, x!=0

; 2)

sqr(x)-

F(a)(число фиббоначи)

/x

, если

a>0, x>0

3) else

1+x/c

Вот, что я наклепала, но "это" выдаёт кучу ошибок, может кто подправить и объяснить? Заранее огромнейшее спасибо!!
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <math.h>
  4. #include <locale.h>
  5. float fib(int a);
  6. void print ();
  7. float main()
  8. {
  9. setlocale (LC_ALL, "russian");
  10. int a,b,c;
  11. float x;
  12. printf("Введите x = ");
  13. scanf_s ("%d", &x);
  14. printf("Введите a = ");
  15. scanf_s ("%d", &a);
  16. printf("Введите b = ");
  17. scanf_s ("%d", &b);
  18. printf("Введите c = ");
  19. scanf_s ("%d", &c);
  20. _getch ();
  21. }
  22. int fib(a)
  23. {
  24. if(a==0||a==1) 1;
  25. return fib(a-1)+fib(a-2);
  26. }
  27. float calculate(int a,b,c,x, float F)
  28. {
  29. if (abs(a)>3, x!=0) F=a*x*x+b*b*x;
  30. if (a>0, x>0) F=sqrt(x)-fib/x;
  31. else F=1+x/c;
  32. return F;
  33. void print (a)
  34. {
  35. printf("%f", F);
  36. }

Решение задачи: «Вычислить и вывести на экран значение математической функции F»

textual
Листинг программы
  1. #include <math.h>   // sqrt
  2. #include <stdio.h>  // fgets
  3. #include <stdlib.h> // strtol
  4.  
  5. double fib(unsigned a)
  6. {
  7.     double fnow = 0.0;
  8.     double fnext = 1.0;
  9.     double tempf;
  10.     while( --a ) {
  11.         tempf = fnow + fnext;
  12.         fnow = fnext;
  13.         fnext = tempf;
  14.     }
  15.     return fnext;
  16. }
  17.  
  18. double f1(double x, double a, double b)
  19. {
  20.     return x * (a * x + b * b);
  21. }
  22.  
  23. double f2(double x, unsigned a)
  24. {
  25.     return sqrt(x) - fib(a) / x;
  26. }
  27.  
  28. double f3(double x, double c)
  29. {
  30.     return 1.0 + x / c;
  31. }
  32.  
  33. double calculate(unsigned x, unsigned a, unsigned b, unsigned c)
  34. {
  35.     if( a > 3 && x != 0 ) return f1(x, a, b);
  36.     if( a > 0 && x > 0 ) return f2(x, a);
  37.     return f3(x, c);
  38. }
  39.  
  40. unsigned input(const char* var_name)
  41. {
  42.     static char buf[10];
  43.     printf("Input %s: ", var_name);
  44.     fflush(stdin);
  45.     fgets(buf, sizeof(buf), stdin);
  46.     return strtol(buf, NULL, 10);
  47. }
  48.  
  49. void print(unsigned x, unsigned a, unsigned b, unsigned c, double f)
  50. {
  51.     printf("x = %i\na = %i\nb = %i\nc = %i\nf = %f\n", x, a, b, c, f);
  52. }
  53.  
  54. int main(void)
  55. {
  56.     unsigned x = input("x");
  57.     unsigned a = input("a");
  58.     unsigned b = input("b");
  59.     unsigned c = input("c");
  60.     double f = calculate(x, a, b, c);
  61.     print(x, a, b, c, f);
  62.     return 0;
  63. }

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

  1. Включаются необходимые заголовочные файлы: для функции sqrt, для функции fgets, для функции strtol.
  2. Определяются функции: — fib(unsigned a) для вычисления чисел Фибоначчи. — f1(double x, double a, double b) для вычисления значения функции F1. — f2(double x, unsigned a) для вычисления значения функции F2. — f3(double x, double c) для вычисления значения функции F3. — calculate(unsigned x, unsigned a, unsigned b, unsigned c) для выбора и вычисления соответствующей функции в зависимости от переданных параметров. — input(const char* var_name) для считывания ввода пользователя с клавиатуры. — print(unsigned x, unsigned a, unsigned b, unsigned c, double f) для вывода на экран значений переменных и результата вычисления функции.
  3. В функции main() считываются значения переменных x, a, b, c с помощью функции input(), а затем вычисляется и выводится на экран значение функции F с помощью функции calculate() и функции print().

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


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

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

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

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

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

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