Для формулы составить программу построения таблицы значений функции - C (СИ)
Формулировка задачи:
Всем привет, ребят помогите составить программу, а точнее помогите составить код.. Если вам не сложно... Честно признаюсь для лабораторной работы, не могу справиться((..
Условие задачи:
Задание повышенной сложности:
пожалуйста
Найти минимальное среди значений функций имеющих дробную часть, меньшую 0.5 и количество таких значений.
- Для формулы (формула на картинке) составить программу построения таблицы значений функции при изменении аргумента от А до В с шагом H.
- Значения A,B и H объявить как константы в директивах #define.
- В каждой строке выводить значение аргумента и соотвествующие ему значение функции в форматном виде с 4 знаками после запятой. Решение задачи: «Для формулы составить программу построения таблицы значений функции»
textual
Листинг программы
#include<stdio.h>
#include<math.h>
#include<float.h>
#define A -3
#define B 3
#define H 0.1
double f(double x)
{
return 1.7*x - 6.3*x + 2.7;
}
void Print(double x, double b)
{
if (x <= b)
{
printf("%12.4f %12.4f\n", x, f(x));
Print(x + H, b);
}
}
int Count(double x, double b)
{
double w;
return x <= b ? (modf(fabs(f(x)), &w) < 0.5) + Count(x + H, b) : 0;
}
double Min(double x, double b)
{
double buf, w;
return x <= b ? (((buf = Min(x + H, b)) > f(x)) && (modf(fabs(f(x)), &w) < 0.5) ? f(x) : buf) : DBL_MAX;
}
int main( )
{
Print(A, B);
printf("min = %.4f\n", Min(A, B));
printf("count = %d\n", Count(A, B));
return 0;
}
Объяснение кода листинга программы
- Объединение всех файлов начинается с
#include<stdio.h>, что позволяет использовать функции для ввода и вывода данных. #include<math.h>позволяет использовать математические функции, такие какfabs()иmodf().#include<float.h>используется для доступа к константеDBL_MAX.double f(double x)- это функция, которая представляет формулу, которую нужно вычислить.void Print(double x, double b)- это функция, которая выводит значения функцииf(x)и ее производные на интервале[a,b]с шагомh.int Count(double x, double b)- это функция, которая считает количество точек в интервале[a,b], где значение функцииf(x)меньше или равно нулю.double Min(double x, double b)- это функция, которая находит минимум функцииf(x)на интервале[a,b].int main()- это функция, которая запускает программу.Print(A, B);выводит значения функцииf(x)и ее производные на интервале[A,B].printf(min = %.4f\n, Min(A, B));выводит минимум функцииf(x)на интервале[A,B].printf(count = %d\n, Count(A, B));выводит количество точек в интервале[A,B], где значение функцииf(x)меньше или равно нулю.return 0;указывает, что программа успешно завершилась.- В функции
Print(double x, double b)используется циклfor, который продолжается, покаxменьше или равноb. - В каждой итерации цикла
forфункцияprintf()используется для вывода значенийxиf(x). - Функция
Count(double x, double b)использует циклforи условный операторif, чтобы считать количество точек в интервале[a,b], где значение функцииf(x)меньше или равно нулю. - Функция
Min(double x, double b)использует циклforи условный операторif, чтобы найти минимум функцииf(x)на интервале[a,b]. - В функции
Min(double x, double b)используется функцияmodf(), чтобы получить мнимую часть числа. - В функции
main()используется функцияPrint(A, B), чтобы вывести значения функцииf(x)и ее производные на интервале[A,B]. - Затем используется функция
Min(A, B), чтобы найти минимум функцииf(x)на интервале[A,B]. - Наконец, используется функция
Count(A, B), чтобы вычислить количество точек в интервале[A,B], где значение функцииf(x)меньше или равно нулю.