Табулирование функции - C (СИ) (71869)
Формулировка задачи:
Написать функцию, которая табулирует любую указанную функцию вида float (float) в интервале x1, x2, на N точек.
Решение задачи: «Табулирование функции»
textual
Листинг программы
#include <stdio.h> #include <math.h> #define EPS 1e-9 #define M_PI 3.1415926 typedef float (*function) (float); void tabulator(function f, float x1, float x2, int n) { float step = (x2 - x1) / n,x,y; for (x = x1; x <= x2 + EPS; x += step) { y=f(x); printf("\n%.2f\t%.2f", x, y); } } float f1(float x) { return sin(x); } float f2(float x) { return cos(x); } int main() { printf("\nTable 1"); tabulator(f1, 0, M_PI, 10); printf("\nTable 2"); tabulator(f2, 0, M_PI, 10); fflush(stdin); getchar(); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с числами с плавающей точкой и определения значения числа Пи.
- Объявление типа данных для функции, которая будет вычислять значения функции на заданном интервале.
- Создание функции
tabulator
, которая принимает на вход функцию, границы интервала и количество точек на интервале и выводит значения функции на этом интервале. - Вычисление шага интервала с помощью формулы
step = (x2 - x1) / n
. - Создание переменной
x
для хранения текущего значения точки на интервале. - Создание переменной
y
для хранения значения функции на текущей точке. - Создание цикла
for
, который будет выполняться отx1
доx2 + EPS
с шагомstep
. - Внутри цикла вычисление значения функции
y = f(x)
и вывод значенийx
иy
на экран с помощью функцииprintf
. - Объявление двух функций
f1
иf2
, которые вычисляют значения синуса и косинуса соответственно. - В функции
main
вызов функцииtabulator
с заданными аргументами для функцииf1
иf2
. - Вывод таблицы значений функции
f1
с помощьюtabulator(f1, 0, M_PI, 10)
. - Вывод таблицы значений функции
f2
с помощьюtabulator(f2, 0, M_PI, 10)
. - Добавление задержки перед выводом таблицы значений функции
f2
с помощьюfflush(stdin)
иgetchar()
. - Возврат значения
0
для завершения работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д