|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.11.2007, 23:45 | #1 |
Пользователь
Регистрация: 11.11.2007
Сообщений: 44
|
математическ функции в Delphi - факториал...
Подскажите, пожалуйста
как обозначает ф-ция факторила (математически это n!) и как записать е в какой-то степени? как е обозначается? |
12.11.2007, 05:54 | #2 |
Регистрация: 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 в кубе |
12.11.2007, 05:57 | #3 |
Регистрация: 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 |
12.11.2007, 08:40 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
12.11.2007, 17:02 | #5 |
C# developer
Форумчанин
Регистрация: 03.10.2007
Сообщений: 393
|
вот самая простенькая прога вычисляющая факториал:
I like WPF
|
26.03.2008, 21:59 | #6 |
Участник клуба
Регистрация: 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; |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Факториал | 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 |