![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте! У меня возникла небольшая проблема: не могу дописать программу по рекурсии.
Вот условие задачи: ------------------------- Задано натуральное N. Разработать программу для подсчета заданной сумы (использовать рекурсивные процедуры или функции): ![]() ------------------------ Намучился с этой прогой.. Сделал только функцию для подсчета (k+1)! в Ak, и то не знаю правильно ли: Код:
Function zn(k:integer):double; begin if k=0 then result:=1 else result:=zn(k)*(k+1); end; Пожалуйста, помогите написать программу! Скоро надо сдавать лабу.. ![]() |
#2
|
||||
|
||||
![]() Код:
program Project1; {$APPTYPE CONSOLE} function Recursiv(k,n,f:int64):Double; begin if k=n then begin Result := ( 1 - 1/f/(k+1) ); end else begin Result := ( 1 - 1/f/(k+1) ) + Recursiv(k+1,n,-f*(k+1)); end; end; begin Writeln( Recursiv(1,10,1):0:8 ); Readln; end. Recursiv(k,n,f) - k и f - всегда передавай 1, n - заданное натуральное N Велик и могуч наш Object Pascal ! ICQ: 357-591-887 Последний раз редактировалось Rokuell, 02.07.2010 в 15:46. |
#3
|
|||
|
|||
![]() Цитата:
Здравствуйте, Rokuell. Большое спасибо за помощь. Не могу понять: вы запрограммировали все выражение рекурсии или какую-то часть? Объясните, пожалуйста. |
#4
|
|||
|
|||
![]() И еще: выдает ошибку:
[Error] Unit3.pas(88): Incompatible types: 'Int64' and 'Real' Как я понял несовместимы типы. Ругается га строчку: s:=Recursiv(1,n,1); Для переменных S, N задал такие типы: n:real; s:int64; |