Посчитать сумму ряда в заданном диапазоне - C (СИ)
Формулировка задачи:
Ребята, знаю, что всё изично, но скажите, где я неправильно написал.
Вот код:
#include<stdio.h>
#include<math.h>
#include<locale.h>
int main(){
setlocale(LC_ALL,".1251");
double rad,Xn,Xk,Dx,sum=0,x,ch,eps=pow(10,-4);
int i;
printf("Требуется подсчитать сумма ряда в пределах от -PI до PI\n");
Xn=-M_PI, Xk=M_PI;
printf("Введите шаг Dx:");
scanf("%lf",&Dx);
if(Dx>=0){
for(x=Xn;x<Xk;x+=Dx){
rad=x*M_PI/180;
for(i=1;fabs(ch)>eps;++i){
ch=pow(-1,i+1)*cos(i*rad)/pow(i,2);
sum+=ch;}
printf("При значении x, равном %lf, сумма ряда равна: %lf\n",x,sum);
sum=0;}}
else{printf("Шаг должен быть положительным");}
}Решение задачи: «Посчитать сумму ряда в заданном диапазоне»
textual
Листинг программы
#include<stdio.h>
#include<math.h>
#include<locale.h>
int main(){
setlocale(LC_ALL,".1251");
double rad,Xn,Xk,Dx,sum=0,x,ch,eps=10E-4,y=1;
int i;
printf("Требуется подсчитать сумму ряда в пределах от -PI до PI\n");
Xn=-180, Xk=180;
printf("Введите шаг Dx:");
scanf("%lf",&Dx);
if(Dx>=0){
for(x=Xn;x<=Xk;x+=Dx){
rad=x*M_PI/180;
ch=y;
for(i=1;fabs(ch)>eps;++i){
ch=pow(-1,i+1)*cos(i*rad)/pow(i,2);
sum+=ch;}
printf("При значении x, равном %lf, сумма ряда равна: %lf\n",x,sum);
sum=0;}}
else{printf("Шаг должен быть положительным");}}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с числами с плавающей точкой и для работы с локалью.
- Установка локали на русскую.
- Объявление переменных: радиана (rad), аргументы функции (Xn, Xk), шаг (Dx), сумма ряда (sum), текущее значение x, переменная для контроля точности (ch), число Пи (M_PI), число Эйлера (e).
- Вывод сообщения о том, что требуется подсчитать сумму ряда в пределах от -PI до PI.
- Установка начального и конечного значений для переменной x.
- Ввод шага Dx с клавиатуры.
- Проверка на положительность шага Dx.
- Инициализация переменной i.
- Цикл по переменной x от Xn до Xk с шагом Dx.
- Преобразование значения x из градусов в радианы.
- Инициализация переменной ch значением y.
- Цикл по переменной i от 1 до бесконечности с условием на точность вычислений.
- Вычисление значения ch с помощью формулы ряда.
- Добавление значения ch к сумме ряда.
- Вывод сообщения о значении x и сумме ряда.
- Обнуление суммы ряда перед следующим шагом.
- Проверка на точность вычислений.
- Если шаг Dx отрицательный, то выводится сообщение об ошибке.
- Если шаг Dx положительный, то выполняется цикл по переменной x от Xn до Xk с шагом Dx.
- Вывод сообщения о том, что подсчет суммы ряда в указанном диапазоне завершен.