Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2007, 23:45   #1
Иринкаа
Пользователь
 
Регистрация: 11.11.2007
Сообщений: 44
По умолчанию математическ функции в Delphi - факториал...

Подскажите, пожалуйста
как обозначает ф-ция факторила (математически это n!)
и как записать е в какой-то степени? как е обозначается?
Иринкаа вне форума Ответить с цитированием
Старый 12.11.2007, 05:54   #2
PoBeCHuK
 
Регистрация: 05.11.2007
Сообщений: 3
По умолчанию

2)function Degree(const DegBasis, DegParam: Extended): Extended;
asm
// Вход: DegBasis, DegParam --> в стеке
// Выход: Result(= DegParam в случае некорректных данных) --> ST(0)

FLD DegParam
FLDZ
FCOMIP ST, ST(1)
JNZ @@DegParam_is_not_0
FFREE ST
FLD1
JMP @@exit
@@DegParam_is_not_0:
JNC @@DegParam_is_less_than_0
XOR EAX, EAX
JMP @@cmp_DegBasis_to_0
@@DegParam_is_less_than_0:
OR EAX, 1
@@cmp_DegBasis_to_0:
FLD DegBasis
FLDZ
FCOMIP ST, ST(1)
JNZ @@DegBasis_is_not_0
TEST EAX, 1
JZ @@DegParam_is_greater_than_0
FSTP ST
JMP @@exit
@@DegParam_is_greater_than_0:
FSTP ST(1)
JMP @@exit
@@DegBasis_is_not_0:
JC @@DegBasis_is_greater_than_0
FABS
FXCH
OR EAX, 1
FLD ST
FRNDINT
FSUB ST, ST(1)
FLDZ
FCOMIP ST, ST(1)
FSTP ST
JZ @@DegParam_is_integer
FLD1
FDIV ST, ST(1)
FABS
FLD1
FCOMIP ST, ST(1)
JC @@Abs_1_div_DegParam_greater_than_1
FSTP ST
FSTP ST(1)
JMP @@exit
@@Abs_1_div_DegParam_greater_than_1 :
FISTP QWORD PTR @@Int_64
TEST BYTE PTR @@Int_64, 1
JNZ @@change_a_sign_at_the_and_of_calcu lations
FSTP ST(1)
JMP @@exit
@@DegParam_is_integer:
FLD ST
FISTP QWORD PTR @@Int_64
TEST BYTE PTR @@Int_64, 1
JNZ @@change_a_sign_at_the_and_of_calcu lations
XOR EAX, EAX
@@change_a_sign_at_the_and_of_calcu lations:
FXCH
@@DegBasis_is_greater_than_0:
FYL2X
FLD ST
FRNDINT
FSUB ST(1), ST
FXCH
F2XM1
FLD1
FADD
FSCALE
FSTP ST(1)
TEST EAX, 1
JZ @@exit
FCHS
JMP @@exit
@@Int_64:
DQ 0
@@exit:
FWAIT

end;
Degree(2.1417, 3) e в кубе
PoBeCHuK вне форума Ответить с цитированием
Старый 12.11.2007, 05:57   #3
PoBeCHuK
 
Регистрация: 05.11.2007
Сообщений: 3
По умолчанию

1)function FacIterative(n: Word): Longint;
var
f: LongInt;
i: Integer;
begin
f := 1;
for i := 2 to n do
f := f * i;
Result := f;
end;

// Recursive Solution:

function FacRecursive(n: Word): LongInt;
begin
if n > 1 then
Result := n * FacRecursive(n - 1)
else
Result := 1;
end;


FacRecursive(5) факториал 5
PoBeCHuK вне форума Ответить с цитированием
Старый 12.11.2007, 08:40   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
и как записать е в какой-то степени? как е обозначается?
е в степени N - Exp(N)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2007, 17:02   #5
kommunist
C# developer
Форумчанин
 
Аватар для kommunist
 
Регистрация: 03.10.2007
Сообщений: 393
По умолчанию

вот самая простенькая прога вычисляющая факториал:
Вложения
Тип файла: rar факториал.rar (168.5 Кб, 22 просмотров)
I like WPF
kommunist вне форума Ответить с цитированием
Старый 26.03.2008, 21:59   #6
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

// c помощью рекурсии
Function faktor(n:word):integer;
begin
if n=0 then result:=1
else result:=fak(n-1)*n
end;

procedure TForm1.Button1Click(Sender: TObject);
var i, res: integer;
begin
// c помощью рекурсии
ShowMessage('Факториал 5! = ' + inttostr(faktor(5)));

// циклически
res:=1;
for i := 1 to 5 do res := res * i;
ShowMessage('Факториал 5! = ' + inttostr(res));
end;
Gorychev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Факториал Killbrum Софт 14 13.08.2008 00:34
Есть ли в СИ мат.ф-я факториал? NEWLOGIN Общие вопросы C/C++ 1 10.05.2008 18:32
факториал СРОЧНО ПЛЗ!!!! koston Паскаль, Turbo Pascal, PascalABC.NET 1 26.03.2008 12:56
Факториал числа в Delphi Prisian Общие вопросы Delphi 16 24.01.2008 13:23
Использование функции Excel из Delphi Геля Общие вопросы Delphi 3 07.06.2007 07:33