Функции и рекурсия: вычислить значение составной функции - C (СИ)
Формулировка задачи:
Помогите решить задачку, с использованием операторов ветвления if, if-else и switch.
Вычислить и вывести на экран все значение математической функции F. Вычисление значения функции F необходимо выполнить с использованием функции calculate, в которую передаются четыре параметра: x, a, b, c, которые являются действительными числами и вводятся с клавиатуры. Вывод параметров и результата вычисления функции необходимо вынести в отдельную функцию print.
Решение задачи: «Функции и рекурсия: вычислить значение составной функции»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
unsigned long long fibo (unsigned int n) {
if (n == 0)
return 0;
else if (n == 1)
return 1;
else
return fibo(n - 1) + fibo(n - 2);
}
void setval (double* a, double* b, double* c ) {
*a = rand() % rand() / (double)rand();
*b = rand() % rand() / (double)rand();
*c = rand() % rand() / (double)rand();
}
double foo (double a, double b, double c, int x ) {
if (x >= 0 && islessgreater(b, 0.) )
return (double) fibo(x);
else if ( !(x % 2) && !islessgreater(b, 0.) )
return ((double) x - a ) / ((double) x + b );
else
return (double) x / fabs(c);
}
int main() {
double a, b, c;
int x;
srand(time(0));
setval(&a, &b, &c);
for (x = -10; x < 11; ++x)
fprintf(stdout, "%lf\n", foo(a, b, c, x));
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы: stdio.h, stdlib.h, time.h, math.h
- Определяется функция fibo, которая реализует вычисление чисел Фибоначчи с помощью рекурсии.
- Определяется функция setval, которая инициализирует указанные переменные случайными значениями.
- Определяется функция foo, которая реализует вычисление значения составной функции, используя числа Фибоначчи и другие переменные.
- В функции main инициализируются и перемешиваются значения переменных a, b, c с помощью функции setval и генератора случайных чисел.
- С помощью цикла for вычисляются значения функции foo для всех целых значений x от -10 до 10 и выводятся на экран.
- Программа возвращает 0, завершая свою работу.