Текст подпрограммы и версий
sfg1r_p.zip  sfg1e_p.zip 
Тексты тестовых примеров
tsfg1r_p.zip  tsfg1e_p.zip 

Функция:  SFG1R (модуль SFG1R_p)

Назначение

Вычисление факториала натурального числа.

Математическое описание

Подпрограмма - функция SFG1R вычисляет факториал натурального числа N! = 1 * 2 * 3 ...* N непосредственным умножением, если N ≤ 32, и по формуле

                          N!  =  e ln Г(N+1) ,  

если N > 32, где Г (N + 1) - значение гамма - функции от N + 1. Значение 0! полагается равным 1 .

Использование

function SFG1R(N :Integer): Real;

Параметры

N - заданное значение натурального числа, для которого необходимо вычислить факториал (тип: целый).

Версии

SFG1E - вычисление факториала натурального числа в режиме расширенной (Extended) точности; при этом функция SFG1E должна быть описана как Extended.

Вызываемые подпрограммы

       SF66R -
       SF66E  
вычисление натурального логарифма гамма - функции Г (x) вещественного аргумента в режимах одинарной и расширенной (Extended) точности; используются в подпрограммах - функциях SFG1R и SFG1E соответственно.

Замечания по использованию

 

В подпрограммах - функциях SFG1R и SFG1E возможны остановы по переполнению арифметического устройства, если требуемое значение N! превосходит максимальное представимое число на используемой машине.

Пример использования

Unit tsfg1r_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SFG1R_p;

function tsfg1r: String;

implementation

function tsfg1r: String;
var
N :Integer;
RES :Real;
begin
Result := '';  { результат функции }
N := 5;
RES := SFG1R(N);
Result := Result + Format(' %16.7f ',[RES]) + #$0D#$0A;
UtRes('tsfg1r',Result);  { вывод результатов в файл tsfg1r.res }
exit;
end;

end.


Результат:     RES = 120