ecrire un programme (pascal) qui calcule X puissance n ?!!! - Delphi/Pascal - Programmation
Marsh Posté le 03-01-2012 à 14:28:48
1) écrire la fonction mult:
function mult(a,b: integer): integer;
begin
mult:=a*b;
end
ensuite écrire la fonction exp qui est récursive:
function exp(x,n: integer) : integer
begin
if n=0 then exp:=1
else exp:=mult(exp(x,n-1), x)
end;
J'ai fait ca rapidement, donc à vérifier, mais j'ai du mal à comprendre le fait que tu n'utilise pas l'opérateur *, puisque tu fait une fonction pour le remplacer.
tu pourrais tout aussi bien écrire:
exp( mult(n,log(x)) )
car: log(a^n)=nlog(a)
donc exp(log(a^n)=exp(nlog(a))
ps: désolé si je déterre un vieux sujet, je viens de voir la date...
Marsh Posté le 12-12-2011 à 23:13:41
ecrire un programme (pascal) qui calcule et affiche A puissance n (sans utiliser l'opperation de puissance ni de multiplication)(A et n sont des entires)
bon pour l'algorithme :
mult(1, x) = 1*x = x = x^1;
mult(mult(1, x), x) = mult(x, x) = x*x = x^2;
mult(mult(mult(1, x), x), x) = mult(x*x, x) = x*x*x ;
mult(fonction qui calcule x * y sans usitiliser multiplication)
donc j'ai trouvé la methode, mais je ne sais pas comment la traduire en pascal
ex: 2^5=32
2²=2+2=4
2^3=4+4=8
2^4=8+8=16
2^5=16+16=32
exp(x, n) = 1 if n = 0 (and x is not 0)
exp(x, n) = mult(exp(x, n-1), x) if n is not 0
mais comment traduirer cà en pascal ou delphi Svp aider moi ..
Merci.
Message édité par Esselami le 12-12-2011 à 23:14:39