logo
2010_150 Акчурин - Программирование на языке C#

7.1.Цикл while

Вычислить значение суммы членов бесконечного ряда с заданной точностью Е с использованием инструкции цикла while. На печать вывести значение суммы и число членов ряда, вошедших в сумму. Проект – консольное приложение.

Пример. Вычислить значение суммы членов бесконечного ряда

при x = 0.1 с точностью до члена ряда с модулем, меньшим E=0.00001.

Для вычисления очередного члена ряда будем использовать рекуррентное соотношение, связывающее его с предыдущим членом a(n+1) = q*a(n). Применение рекуррентных формул позволяет избежать вычисления факториала и возведения в произвольную степень. Рекуррентный коэффициент q найдем из выражений для текущего и следующего членов ряда

Деля второе выражение на первое, получим

Значение начального члена ряда задаем до цикла путем прямого присваивания (номер начального члена n в разных вариантах равен 0 или 1, правильное значение определяется по формуле текущего члена). В нашем задании n=0, a=x.

Листинг программы

using System;

namespace ConsoleWhile

{

class Program

{

static void Main()

{

double a=0, e=0.00001, q=0, s=0, x=0.1;

int n = 0;

a = x; // Инициализация цикла

s = a;

while (Math.Abs(a) > e) // Цикл

{

q = -x * x / (2 * n + 2) / (2 * n + 3);

a *= q;

s += a;

n++;

}

Console.WriteLine();

Console.WriteLine("Результат");

Console.WriteLine();

Console.WriteLine("Сумма s=" + Convert.ToString(s));

Console.WriteLine("Число членов ряда n=" + Convert.ToString(n));

Console.WriteLine();

Console.WriteLine("Нажмите любую клавишу");

Console.ReadKey(); // Пауза

}

}

}

Консоль перед закрытием программы: