Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ Сумма ряда на ЭВМ и вычисленная аналитически

Автор: SunCHO 2.5.2007, 12:53

Задача:
Составить 2 программы на языке Pascal (одну не используя оператор цикла), другую используя соответствующий оператор цикла. Сравнить полученное ЭВМ значение суммы ряда со значением, вычисленным аналитически. Найти сумму 50 членов ряда: S=2+2/2*3+2/2^2*5+2/2^3*7

Скажу огромное спасибо тому, кто хоть подскажет русло в котором думать надо!!!

Автор: SunCHO 2.5.2007, 14:48

кажется мне чтьо здесь что-то с рекурсиями связано, но уж очень сложно выходит как-то...

Автор: Ботаник 3.5.2007, 4:51

Точно, с рекурсиями! laugh.gif Не в бровь, а в глаз laugh.gif
Программу на Пачкале выкладывать не буду, чтобы не мешать творческому процессу. Но вот алгоритм на Васике. Работает, проверял.

''''''''''''''''''''''''''''''
Function F(k As Integer) As Double
If (k > 0) Then
F = F(k - 1) + 2 / (2 ^ k * (1 + 2 * k))
Else
F = 2
End If
End Function

Function Цикл(n As Integer) As Double
Dim k As Integer, S As Double

S = 0
For k = 0 To n
S = S + 2 / (2 ^ k * (1 + 2 * k))
Next k
Цикл = S
End Function

Sub Процедура1()
Dim S As Double

' Вычисление через рекурсивную функцию.
S = F(3)

' Вычисление через цикл.
S = Цикл(3)
End Sub
'''''''''''''''''''''''

Для контроля: S(3)=2.469.....
И ещё - в Пачкале нет возведения в степень, так что операцию 2^k придётся программировать самостоятельно wink.gif

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)