Код
Function f(x:Double;n:Word):Double;
Var
a,b:Double;
i:Integer;
Begin
a:=1;
For i:=1 To n Do
a:=a*(2*i*x-1);
b:=1;
For i:=1 To n Do
b:=b*(x-i);
f:=a/b
End;
Var
x:Double;
n:Word;
Begin
Write('Enter x: ');
ReadLn(x);
Write('Enter n: ');
ReadLn(n);
WriteLn('f(x,n) = ',f(x,n):5:5)
End.
Никаких проверок, ничего лишнего. На глаз: если введут x<=n, причём x - натуральное, то вылетит деление на 0.
Кстати, подпрограмма-функция - совсем не интересно