Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 11
1

Не работает программа (Рекуррентные формулы)

07.04.2015, 20:37. Показов 1141. Ответов 5
Метки нет (Все метки)

Помогите найти ошибку в программе, задача такая:используя формулу для элементов последовательности an, составить программу для вычисления и печати n и an при указанных величинах n ( 25 и 36). Применить рекуррентные вычисления.
Сама программа:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Sub Prg_5_1()
Dim a As Single
Dim b As Single
Dim n As Integer
Dim s1 As Single
Dim s2 As Single
b = -b
c = 1
For n = 1 To 36
b = (-1) ^ n
c = Sqr(n)
a = b / c
Next n
If n = 25 Then
s1 = a
End If
If n = 36 Then
s2 = a
End If
MsgBox ("При n=25" + vbNewLine + "s=" + Str(s1) + vbNewLine + "При n=36" + vbNewLine + "s=" + Str(s2))
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2015, 20:37
Ответы с готовыми решениями:

Рекуррентные формулы
Даны действительные числа х, e (х<>0, e>0) (e-эпсилон). Вычислить с точностью e бесконечную сумму и...

Рекуррентные формулы
Помогите преобразовать в рекуррентную формулу, отдельно для числителя и знаменателя. Если со...

Рекуррентные формулы
Подруга попросила решить вот эти вот задачки (а в особенности 3-ю и 4-ю) , а на Паскале уже и не...

Рекуррентные формулы
Здравствуйте! Нашел некоторые рекуррентные формулы, но не могу понять, как они выведены. Например,...

5
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 11
18.04.2015, 20:54  [ТС] 2
Очень нужна помощь, помогите пожалуйста!

Добавлено через 12 минут
Вот сама рекуррентная формула: (-1)^n/Sqrt(n)
0
15019 / 6347 / 1725
Регистрация: 24.09.2011
Сообщений: 9,976
18.04.2015, 21:02 3
Лучший ответ Сообщение было отмечено greatfire как решение

Решение

Подкорректировал программу, чтобы она работала. Но это не рекуррентный алгоритм, а итеративный.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Public Sub Prg_5_1()
Dim a As Single
Dim b As Single
Dim n As Integer
Dim s1 As Single
Dim s2 As Single, c As Single
  b = 1
  c = 1
  For n = 1 To 36
    b = -b
    c = Sqr(n)
    a = b / c
    If n = 25 Then
      s1 = a
    ElseIf n = 36 Then
      s2 = a
    End If
  Next n
  MsgBox ("При n=25" + vbNewLine + "s=" + CStr(s1) + vbNewLine + "При n=36" + vbNewLine + "s=" + CStr(s2))
End Sub
Добавлено через 5 минут
Непонятно, зачем тут рекуррентные вычисления - последующий член последовательности никак не связан с предыдущим.
Может, надо вычислить СУММУ этой последовательности до n = 25 и n = 36?
1
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 11
19.04.2015, 13:18  [ТС] 4
Казанский, а можно ли сделать эту программу универсальной, то есть чтобы она считала при любых двух числах n? Попыталась исправить, но не работает, n почему-то остается нулем
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Sub Prg_5_1()
Dim a As Single 
Dim b As Single 
Dim n As Integer 
Dim s1 As Single
Dim s2 As Single, c As Single 
Dim n1 As Integer
Dim n2 As Integer
 b = 1 
 c = 1
  For n = 1 To 36
   b = -b 
   c = Sqr(n) 
   a = b / c
   n = Val(InputBox("Введите n1"))
   s1 = a
   n = Val(InputBox("Введите n2"))
   s2 = a
 Next n
MsgBox ("При n=" + Str(n1) + vbNewLine + "a=" + CStr(s1) + vbNewLine + "При n=" + Str(n2) + vbNewLine + "a=" + CStr(s2))
End Sub
0
15019 / 6347 / 1725
Регистрация: 24.09.2011
Сообщений: 9,976
19.04.2015, 14:51 5
Лучший ответ Сообщение было отмечено greatfire как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Sub Prg_5_1()
Dim a As Single
Dim b As Single
Dim n As Integer
Dim n1 As Integer
Dim n2 As Integer
Dim msg As String
  n1 = Val(InputBox("Введите n1", , 25))
  n2 = Val(InputBox("Введите n2", , 36))
  b = 1
  For n = 1 To 36
    b = -b
    a = b / Sqr(n)
    If n = n1 Or n = n2 Then
      msg = msg & "При n=" & n & " a=" & a & vbNewLine
    End If
  Next n
  MsgBox msg
End Sub
1
1116 / 225 / 35
Регистрация: 15.03.2010
Сообщений: 680
19.04.2015, 15:29 6
А зачем цикл? Может так проще.
Visual Basic
1
2
3
4
5
6
7
8
Private Sub Test()
Debug.Print An(25)
Debug.Print An(36)
End Sub
 
Function An(N As Long) As Double
An = IIf(N \ 2, -1, 1) / Sqr(N)
End Function
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2015, 15:29

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Рекуррентные формулы
Объясните,пожалуйста, составление рекуррентных формул. X=X+...+(-1)^n* (2n-1)*x^2n+1/(2n)*(2n+1)

Рекуррентные формулы
Не могу разобраться с рекуррентной формулой для знаменателя суммы. Рекуррентные формулы, а далее -...

Рекуррентные формулы
Пользуясь рекуррентными формулами, вычислить значение многочлена степени N при заданном значении...

Рекуррентные формулы функций
Здравствуйте! Решал как-то я интегральные уравнения численными методами, но возникла ошибка: на...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.