Подсчитать сумму членов ряда с точностью до 0.000001 и сумму первых 10 членов ряда - C (СИ) (70468)
Формулировка задачи:
Для ряда, члены которого вычисляются по формуле, соответствующей Вашему индивидуальному заданию, подсчитать сумму членов ряда с точностью до 0.000001 и сумму первых 10 членов ряда. Если Вы считаете это необходимым, можете упростить или преобразовать выражение.
Решение задачи: «Подсчитать сумму членов ряда с точностью до 0.000001 и сумму первых 10 членов ряда»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
#include <Windows.h>
int main() {
double totalSum = 0, a = 1.0, sum_of_10 = 0, eps = 0.000001;
int n = 0;
while (fabs(a) > eps) {
a = pow(-1, n) * (1 - (double)pow(2, n) / (pow(2, n) + 1));
totalSum += a;
if(n == 10){
sum_of_10 = totalSum;
}
n++;
}
printf("The total sum is %.8f\nThe sum of first 10 elements is: %.8f\n", totalSum, sum_of_10);
system("pause");
return 0;
}
Объяснение кода листинга программы
В этом коде выполняется вычисление суммы ряда, который создается с помощью формулы, представленной в переменной a. Ряд начинается с 1 и каждый следующий элемент получается путем умножения предыдущего элемента на -1 и вычитания (с округлением вниз до ближайшего целого числа) отношения двух степеней двойки.
Вот список действий, которые выполняются в коде:
- Объявляются переменные:
totalSum- для хранения общей суммы рядаa- для хранения текущего элемента рядаsum_of_10- для хранения суммы первых 10 элементов рядаeps- для хранения точности вычисленийn- для отслеживания номера текущего элемента ряда
- Устанавливается начальное значение
aравным 1. - Устанавливается начальное значение
sum_of_10равным 0. - Устанавливается начальное значение
nравным 0. - Запускается цикл while, который продолжает работу, пока значение
aбольше заданной точностиeps. - Внутри цикла
aобновляется в соответствии с формулой ряда. aдобавляется к общей суммеtotalSum.- Если
nравно 10, то значениеsum_of_10обновляется равным текущей суммеtotalSum. nувеличивается на 1.- По завершении цикла, выводится сообщение с общей суммой ряда и суммой первых 10 элементов ряда.
- Запускается функция system(
pause), чтобы программа приостановилась до тех пор, пока пользователь не нажмет клавишу. - Возвращается 0, чтобы указать, что программа успешно завершилась.