Найти значения функции - C (СИ) (71864)
Формулировка задачи:
Добрый вечер.
Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры.
Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и Y для заданного аргумента x (для тестовых значений исходных данных) должны совпадать в целой части и в первых двух-четырех позициях после десятичной точки.
Немогли бы взглянуть что не так?
#include <stdio.h> #include <conio.h> #include <math.h> void main() { double a, b, x, h, y, r, raz, s, pi = 3.1415926;; int n, k; puts("Vvedi a,b,h,n"); scanf("%lf%lf%lf%d", &a, &b, &h, &n); for(x = a; x<=b; x+=h) { r = s = 1; for(k = 1; k<=n; k++) { r=cos(k*pi/4)*x/k; y=exp(x*cos(pi/4))*cos(x*sin(pi/4)); raz=y-s; s+=r; } printf("\n x= %8.2lf summa X= %8.5lf funkciya Y= %8.5lf Raznost'|Y-X|= %8.5lf", x,s,y,raz); } puts("\nPress any key ... "); getch(); }
Решение задачи: «Найти значения функции»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #include <math.h> void main() { double a, b, x, h, y, raz, s, pi = 3.1415926;; int n, k; double fact=1.; puts("Vvedi a,b,h,n"); scanf("%lf%lf%lf%d", &a, &b, &h, &n); for(x = a; x<=b; x+=h) { s = 1; fact=1; for(k = 1; k<=n; k++) { fact*=k; s+=cos(k*pi/4)*pow(x, k)/fact;; } y=exp(x*cos(pi/4))*cos(x*sin(pi/4)); raz=y-s; printf("\n x= %8.2lf summa X= %18.15lf funkciya Y= %18.15lf Raznost'|Y-X|= %18.15lf", x,s,y,raz); } puts("\nPress any key ... "); getch(); }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с числами с плавающей точкой, вводом/выводом и математическими функциями.
- Объявление переменных: a, b, x, h, y, raz, s и константы pi.
- Ввод значений переменных a, b, h и n с клавиатуры.
- Инициализация переменной fact единицей.
- Организация цикла, который будет выполнять вычисления для каждого значения x от a до b с шагом h.
- Инициализация переменной s и fact единицей в начале каждого цикла.
- Организация вложенного цикла, который будет выполнять вычисления для каждого значения k от 1 до n.
- Вычисление значения fact путем перемножения всех чисел от 1 до k.
- Вычисление значения s путем сложения всех вычисленных значений cos(kpi/4)pow(x, k)/fact.
- Вычисление значения y как экспоненты от xcos(pi/4))cos(x*sin(pi/4)).
- Вычисление значения raz как разности между y и s.
- Вывод на экран значений x, s, y и raz.
- Повторение шагов 5-12 для всех значений x от a до b.
- Завершение программы и ожидание нажатия любой клавиши.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д