Сумма ряда с использованием цикла конструкции Do – Loop - Visual Basic .NET
Формулировка задачи:
Всем привет! Помогите, пожалуйста. Нужно найти ошибку. Требуется найти сумму ряда (см. вложение) с использованием цикла конструкции Do – Loop. Вычисления закончить, когда очередной член ряда станет меньше заданного значения погрешности = 0.0001. Для выхода из цикла использовать оператор Exit Do. Вывести значение суммы S и количество шагов цикла n.
Дело в том, что слагаемое определяется верно. Пропускается первый шаг почему-то (вообщем запуталась с шагами). Из-за это сумма ряда определяется неверно. Кроме того, для х=1 условие (s1<0.0001) выполняется, а для х=2 нет.
Решение задачи: «Сумма ряда с использованием цикла конструкции Do – Loop»
textual
Листинг программы
Dim n, j As Integer Dim f As Long Dim x, s1, s, eps As Decimal x = Val(TextBox3.Text) eps = Val(TextBox4.Text) TextBox2.Clear() Do f = 1 Try 'Попытка выполнить фрагмент программы For j = 1 To 2 * n' For j = 1 To n f = f * j Next j Catch ex As Exception 'В случае переполнения вывести сообщение MessageBox.Show("Факториал: очень большое число!") End End Try s1 = ((-1) ^ n) * ((x ^ (2 * n)) / f) s = s + s1 n = n + 1 TextBox2.Text = TextBox2.Text + "Шаг " + CStr(n) + ". Слогаемое: " + CStr(Math.Round(s1, 5)) + _ "; Сумма ряда: " + CStr(Math.Round(s, 5)) + vbCrLf If Math.Abs(s1) < eps Then Exit Do Loop