![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | 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 Последний раз редактировалось 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;  |