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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы