Вывести таблицу функции косинус на 100 точек на весь период - C (СИ)
Формулировка задачи:
У меня есть функция, шапка которой выглядит как void tabulate(void (*F)(double*), double x1, double x2, long int N); Если я хочу, к примеру, сделать табличку функции косинус на 100 точек на весь период, то я в main вызываю свою функцию как tabulate(&cos, 0, 2*3.14, 1000) и в результате наблюдаю на экране красивенную таблицу, в которой две колонки - аргумент (X, от 0 до 2пи) и значение функции (cos(x)).
#include <stdio.h> #include <stdlib.h> #include <locale.h> #include <math.h> double tabulate(double (*f)(double*), double x1, double x2, int n, double i); double my_function (double x); int main() { setlocale(LC_ALL, "Russian"); int n; double x1, x2, i; printf("Введите нижнюю границу: "); scanf("%lf", &x1); printf("Введите верхнюю границу: "); scanf("%lf", &x2); printf("Размер шага: "); scanf("%d", &n); double (*p)(const double ); p = my_function; if(x1 > x2){ printf("Error"); return 0; for(i = x1; i <= x2; i+= (x2 - x1)/n){ printf("x = %lf\tf = %lf", i, tabulate(p, x1, x2, n, i)); } } return 0; } double my_function (double x) { return 2 * x + 3 * x - 400; } double tabulate(double (*f)(double*), double x1, double x2, int n, double i){ double function = (*f)(x1); return function; }
Решение задачи: «Вывести таблицу функции косинус на 100 точек на весь период»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <locale.h> #include <math.h> double tabulate(double (*f)(double), double x); double my_function (double x); int main() { setlocale(LC_ALL, "Russian"); int n; double x1, x2, i; printf("Введите нижнюю границу: "); scanf("%lf", &x1); printf("Введите верхнюю границу: "); scanf("%lf", &x2); printf("Количество шагов: "); scanf("%d", &n); double (*p)(const double ); p = my_function; if(x1 > x2) { printf("Error"); return 0; } for(i = x1; i <= x2; i+= (x2 - x1)/n) { printf("x = %lf\tf = %lf\n", i, tabulate(p, i)); } return 0; } double my_function (double x) { return 2 * x + 3 * x - 400; } double tabulate(double (*f)(double), double x){ double function = (*f)(x); return function; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д