Найти значения функции - 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.
- Завершение программы и ожидание нажатия любой клавиши.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д