Merci de me le rappeler. Ca vient sans doute du fait que j'ai longtemps utilisé Delphi 1 !
Effectivement, comme le type Int64 est un type entier 64 bits non signé, ça laisse de la marge.
Mais celà ne résout pas le problème de l'erreur de débordement de pile...
May Delphi be with you-------------------------------
Réponse au message :
-------------------------------
Si je peux me permettre : à partir de Delphi 2 Integer et Longint sont identiques ( entiers 32 bits ), ceci ne changera donc pas la capacité de la fonction. A mon avis tu pensais plutôt à Int64.
---

Nono du Moulin

---
-------------------------------
Réponse au message :
-------------------------------
Si y < 1, tu obtiens une exception EStackOverflow !
Il ne faut donc pas utiliser cette fonction tel quel.
De plus, que se passe-t-il en cas de dépassement de capacité ?
Avec deux Integer en entrée et une valeur de sortie également de type Integer, on atteint vite les limites...Un Longint permettrait déjà de repousser un peu ces limites.
May Delphi be with you-------------------------------
Réponse au message :
-------------------------------
Autre méthode : programmer la fonction :
Function puiss(x,y:integer):integer;
begin
if y=1 then puiss:=x else puiss:=x*puiss(x,y-1);
end;
Voila, il ya plus rapide si ca t'interesse en utilisant les puissances indiennnes, mais il faudrait que je reflechisse un peu plus. Dis moi si ca t'interesse.
Magicvinni
-------------------------------
Réponse au message :
-------------------------------
Le plus simple, c'est d'inclure Math dans la clause use de l'unité, puis d'utiliser
Power(Base,Exposant);
Par exemple : 2 puissance 3 :
Nombre := Power(2,3);
A+ et Bonne Prog.
-------------------------------
Réponse au message :
-------------------------------
Quelle est la fonction qui permet d'élever un nombre X à la puissance Y ?
Merci.