Вывести таблицу функции косинус на 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;
}