![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
SunCHO |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 2 Регистрация: 2.5.2007 Город: Воронеж ![]() |
Задача:
Составить 2 программы на языке Pascal (одну не используя оператор цикла), другую используя соответствующий оператор цикла. Сравнить полученное ЭВМ значение суммы ряда со значением, вычисленным аналитически. Найти сумму 50 членов ряда: S=2+2/2*3+2/2^2*5+2/2^3*7 Скажу огромное спасибо тому, кто хоть подскажет русло в котором думать надо!!! |
![]() ![]() |
SunCHO |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 2 Регистрация: 2.5.2007 Город: Воронеж ![]() |
кажется мне чтьо здесь что-то с рекурсиями связано, но уж очень сложно выходит как-то...
|
Ботаник |
![]()
Сообщение
#3
|
Аспирант ![]() ![]() ![]() Группа: Активисты Сообщений: 414 Регистрация: 1.3.2007 Город: Люберцы Вы: другое ![]() |
Точно, с рекурсиями! (IMG:style_emoticons/default/laugh.gif) Не в бровь, а в глаз (IMG:style_emoticons/default/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 придётся программировать самостоятельно (IMG:style_emoticons/default/wink.gif) |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 13:45 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru