Рекурсивня - это значит вызывающая сама себя. Если это функция, то она возвращает результат, если процедура, то она может вернуть результат только в виде var-параметра.
Код:
function f1_rec(n : integer; b1, q : double) : double;
begin
if n <= 1 then result := b1 else result := q * f1_rec(n-1,b1,q);
end;
ЗЫ. С процедурой сам справишься
