Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 24.10.2014
Сообщений: 5
1

Найдите сумму бесконечного ряда c точностью до e , abs(x) < 1

23.12.2015, 22:17. Показов 579. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ввожу значение x = 0,5
Значение точности ряда 0,01
Выдает ошибку

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Public Sub main()
Dim x As Double, n As Double, funk As Double, e As Double, chlen As Double
n = 0
x = InputBox("Введите x")
e = InputBox("Введите точность е")
If Abs(x) > 1 Then
Error 666
End If
Do
       chlen = (-x) ^ n / n * (n + 1)
         funk = funk + chlen
         n = n + 1
    Loop While chlen < e
    MsgBox ("funk=" & funk)
End Sub
Миниатюры
Найдите сумму бесконечного ряда c точностью до e , abs(x) < 1   Найдите сумму бесконечного ряда c точностью до e , abs(x) < 1  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2015, 22:17
Ответы с готовыми решениями:

Найдите сумму бесконечного ряда с точностью до e
Ввожу значение x = 0,5 Значение точности ряда 0,01 Выдает ошибку Public Sub main() Dim x As...

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

Вычислить значение суммы бесконечного ряда с точностью 10-4 для x=0,70. Определить число членов ряда, вошедших в сумму
помогите плиз мозг уже закипел тему вообше не понял по си шарп

Вычислить сумму членов бесконечного ряда с точностью до члена ряда, меньшего заданного ξ для |z| ≤ 1
x=(z+2)^2/2! - (z+2)^3/3! - (z+2)^4/4!

1
655 / 247 / 89
Регистрация: 28.10.2015
Сообщений: 524
26.12.2015, 15:59 2
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Public Sub main()
Dim x As Double, n As Double, funk As Double, e As Double, chlen As Double
n = 0                                                 ' сейчас n равен нулю
x = InputBox("Введите x")
e = InputBox("Введите точность е")
If Abs(x) > 1 Then
Error 666
End If
Do
       chlen = (-x) ^ n / n * (n + 1)         ' и вы возводите некое число в эту степень 0
         funk = funk + chlen                     ' отсюда и ошибка "Divizion by zero"
         n = n + 1                                  ' и только теперь вы назначаете переменной n выполнимое значение
    Loop While chlen < e
    MsgBox ("funk=" & funk)
End Sub
По сути всё верно, нужно лишь начать цикл Do... Loop While с ухода от нулевого значения.
Варианта два:
1) сразу после объявления переменной назначаете ей не (n = 0), а (n = 1)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Public Sub main()
Dim x As Double, n As Double, funk As Double, e As Double, chlen As Double
n = 1                                                 ' сразу даём выполнимое значение
x = InputBox("Введите x")
e = InputBox("Введите точность е")
If Abs(x) > 1 Then
Error 666
End If
Do
       chlen = (-x) ^ n / n * (n + 1)         ' и функция работает с возведением в степень 1
         funk = funk + chlen
         n = n + 1
    Loop While chlen < e
    MsgBox ("funk=" & funk)
End Sub
2) ставите это (n = n + 1) строкой выше этого (chlen = (-x.....)

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Public Sub main()
Dim x As Double, n As Double, funk As Double, e As Double, chlen As Double
n = 0                                                 ' сейчас n равен нулю
x = InputBox("Введите x")
e = InputBox("Введите точность е")
If Abs(x) > 1 Then
Error 666
End If
Do
         n = n + 1                                  ' а теперь n равен 1 и с ним можно работать
       chlen = (-x) ^ n / n * (n + 1)
         funk = funk + chlen
    Loop While chlen < e
    MsgBox ("funk=" & funk)
End Sub
P.S.: Error 666 - это чтоб из Excel'я выскочил Сатана? =))))

Добавлено через 21 час 29 минут
Нет, не совсем так.
Вот это (n * (n + 1))
при n = 0
даёт (0 *(0+1)) = 0
а потом идет на этот ноль деление. Вот где ошибка.
Но по сути изложенным мной способом решается и эта ошибка.
Проблема лишь в том, что предложенное мной решение только убирает ошибку, но при этом условие задачи нарушается.
0
26.12.2015, 15:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2015, 15:59
Помогаю со студенческими работами здесь

Найти сумму бесконечного ряда с точностью до e
Пользуясь рекуррентной функцией найти сумму S бесконечного ряда с точностью до е S=...

Вычислить сумму бесконечного ряда с точностью е
Написать программу для обчисления суммы ряда с точностью е. program test; var u, s :real; z, n...

Выч. сумму бесконечного ряда с точностью ep
Ребят помогите пожалуйста( очень научиться хочется и понять, задали вот такое задание. Дано: x0, h,...

Найти сумму бесконечного ряда с точностью до e
1)задача Итерационные циклы:Н-ти сумму бесконечного ряда с точностью до e.Вот код написал,но не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru