function factorielle(fact:integer):integer; begin if fact >=1 then factorielle:=fact*factorielle(fact-1) else factorielle:=1; end; //modele d'execution=> procedure TForm1.Button1Click(Sender: TObject); begin showmessage ('le factorielle de '+edit1.text + ' est :'+inttostr(factorielle(strtoint(edit1.Text)))); end;
//modele d'exucution sera comme suit procedure TForm1.Button1Click(Sender: TObject); begin if strtoint(edit1.Text)>=1 then showmessage ('le factorielle de '+edit1.text + ' est :'+inttostr(factorielle(strtoint(edit1.Text)))) else showmessage('pas de factorielle pour ce genre de nbrs'); end;
procedure TForm1.Button1Click(Sender: TObject); begin if strtoint(edit1.Text)> 0 then label1.caption:='le factorielle de '+edit1.text + ' est :'+inttostr(factorielle( strtoint(edit1.Text))) else showmessage('pas de factorielle pour ce genre de nbrs'); end;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionfunction factorielle(n: integer): double; begin Result :1; //pm: 0! 1 while n > 1 do begin result := result * n; n := n - 1 end; end;
function fact(f:integer):integer; var i:integer; begin result:=1; if f>1 then for i:=f downto 1 do Result:=Result*i; end;
« Pfff! Qu'est-ce que c'est lent ! »
Pour Moi la récursivité est la meilleure solution pour les problèmes des calculs.