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