Function Factorial(n:Integer):Integer;Assembler;
Asm
MOV CX,[n]
MOV AX,1
@@1:
MUL CX
LOOP @@1
End;
procedure TForm1.Button30Click(Sender: TObject);
var
ves,i,j: byte;
begin
ves := 1;
j := StrToInt(Edit1.Text);
for i := 1 to j do
begin
ves := ves*i
end;
Edit1.Text := IntToStr(ves);
end;
end.
function Factorial(x:integer):LongInt;Оффтоп: держу пари, твой преп задал тебе этот "супер" после того, как ты принесла ему обычный факториал без рекурсии..
begin
if x=0 then Factorial:=1 else Factorial:=x*Factorial(x-1)
end;
function SuperFactorial(x:integer):LongInt;
begin
if x=0 then SuperFactorial:=1
else SuperFactorial:=Factorial(x)*SuperFactorial(x-1)
end;
procedure TForm1.Button32Click(Sender: TObject); {кнопка результат}
begin
Label8.Caption := IntToStr(SuperFactorial);
end;
Function Factorial(y: integer): Longint;
var
Edit1: TEdit;
begin
y := StrToInt(Edit1.Text);
if y = 0 then factorial := 1
else factorial := y*Factorial((y-1));
end;
Function SuperFactorial(y: integer): LongInt;
var
Edit4: TEdit;
begin
y := StrToInt(Edit4.Text);
if y = 0 then SuperFactorial := 1
else SuperFactorial := Factorial(y)*SuperFactorial((y-1));
end;
М | Теги, Наська, теги!! Lapp |