Permet d'obtenir n puissance p(puissances negatives et positives) en turbo pascal

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 650 fois - Téléchargée 36 fois

Contenu du snippet

On rentre un nombre n puis l'exposant p. Le programme renvoit n puissance p meme si p est negatif

Source / Exemple :


program carre;
uses
	crt;
var 	nombre,entier,exposant:real;

function caree(var entier,exposant:real):real;
var
	i:integer;
	CopieEntier:real;
begin
	   if( exposant >0) then begin
      	CopieEntier:=entier;
   		for i:=1 to trunc(exposant-1) do
		  		entier:=CopieEntier*entier;
      end
      else begin
      	CopieEntier:=entier;
            exposant:=-exposant;
         	entier:=1/(caree(entier,exposant))
      end;
   	caree:=entier;
end;

begin
   clrscr;
   write('Taper un nombre : ');
   readln(entier);
   write('Taper sa puissance : ');
   readln(exposant);
   if exposant <> 0 then
		nombre:=caree(entier,exposant)
   else
   	nombre:=1;
   writeln('Nombre = ',nombre);
   readln
end.

Conclusion :


N'hésitez pas a faire vos commentaires.
Pour d'autres sources allez sur mon site:
http://manius.free.fr

A voir également

Ajouter un commentaire

Commentaires

Leirn
Messages postés
30
Date d'inscription
lundi 13 mai 2002
Statut
Membre
Dernière intervention
12 février 2004

ca serai pas plus efficace de faire de l'exponentiation bianire si tu tiens vraiment a faire des elevations a la puissance? pcq la je doute de l'efficacité qd meme
cs_Nono40
Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
1
Ca me parait bien long comme procédure.

N'oublie pas que dans toute fonction on peut utiliser la variable Result:
function caree(var entier,exposant:real):real;
var i:integer;
begin
Result:=1;
if( exposant >=0)
then for i:=1 to trunc(exposant) do Result:=Result*entier
Else for i:=1 to trunc(exposant) do Result:=Result/entier;
end;
De plus dans ce cas elle fonctionne aussi pour exposant=0, ce n'est donc plus nécessaire de le tester avant l'appel.

A noter aussi que l'unité Math fournit la fonction :
function Power(const Base, Exponent: Extended): Extended;

Nono.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.