a puissance n en Pascal ?
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1•
a puissance n en Pascal ?
salut,
est-ce que la fonction Exposant ou Puissance existe en Pascal? est-ce qu'elle est prédéfinie comme EXP, SIN, COS ... ???
merci
est-ce que la fonction Exposant ou Puissance existe en Pascal? est-ce qu'elle est prédéfinie comme EXP, SIN, COS ... ???
merci
informix, Ecole d'ingénieurs
Les passions font vivre l'Homme; sa sagesse le fait seulement durer.
Les passions font vivre l'Homme; sa sagesse le fait seulement durer.

informix- Membre fondamental

- Messages : 350
Inscrit le : 19 Mar 2007
Feuille de personnage
Capacité linguistique:


(1000/1000)
Re: a puissance n en Pascal ?
Je crois que ca existe pas en pascal.
Cepandant je te propose deux solutions:
1/ X^n = exp(n*ln(X))
2/ Definir une fonction puissance
(Rq: pour le ? j'ai pas su quoi mettre
)
Cepandant je te propose deux solutions:
1/ X^n = exp(n*ln(X))
2/ Definir une fonction puissance
- Code:
function puissance(X:real , n : integer) : real;
var
i : integer;
res : real;
begin
if(X=0) then
if (n>0) then res:=0
else
res:=? 'cas impossible
else
if(n=0) then res:=1
else
if(n>0) then
begin
res:=1;
for i:=1 to n do
res:=res*X;
end
else
begin
res:=1;
for i:=1 to -n do
res:=res*(1/X);
end;
puissance:=res;
end;
(Rq: pour le ? j'ai pas su quoi mettre
)
lamia- Admin




- Messages : 1509
Inscrit le : 04 Nov 2007
Age : 22
Localisation : Tunis
Feuille de personnage
Capacité linguistique:


(996/1000)
Re: a puissance n en Pascal ?
x^n n'est pas définie lorsque x=0 et n=0. Ce cas n'est pas à traiter à l'intérieur de cette fonction mais dans le programme principal il faudra empêcher ce cas.
manianis- Admin


- Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: a puissance n en Pascal ?
Oui, j'ai voulu le traiter à l'intérieur de la fonction alors on le traite dans le programme principal. Alors le code devient:
- Code:
function puissance(X:real , n : integer) : real;
var
i : integer;
res : real;
begin
if(X=0) then
if (n>0) then res:=0
else
if(n=0) then res:=1
else
if(n>0) then
begin
res:=1;
for i:=1 to n do
res:=res*X;
end
else
begin
res:=1;
for i:=1 to -n do
res:=res*(1/X);
end;
puissance:=res;
end;
¤´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´ (¸.·`¤... Lamia
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´ (¸.·`¤... Lamia

lamia- Admin




- Messages : 1509
Inscrit le : 04 Nov 2007
Age : 22
Localisation : Tunis
Feuille de personnage
Capacité linguistique:


(996/1000)
Re: a puissance n en Pascal ?
Je vous propose une autre méthode qui est plus optimisée :
et une autre qui est plus optimisée :
- Code:
function Puissance(a : real ; b : integer):real;
var
p, a2 : real;
i : integer;
begin
p := 1;
a2 := a * a;
for i:=1 to (Abs(b) div 2) do p := p * a2;
if (b mod 2 <> 1) then p := p * a;
if (b < 0) then p := 1 / p;
Puissance := p;
end;
et une autre qui est plus optimisée :
- Code:
function puissance(x : real ; a : integer):real;
var
i : integer;
pu, p : real;
neg : boolean;
begin
pu := 1.0;
p := x;
neg := (a < 0);
while (a <> 0) do
begin
if (a mod 2 <> 0) then pu := pu * p;
p := p * p;
a := a div 2;
end;
if neg then puissance := 1/pu else puissance :=pu;
end;
manianis- Admin


- Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: a puissance n en Pascal ?
manianis et lamia:
la fonction f: x --> x^x est prolongeable par continuité en zéro.
Donc 0 puissance 0 existe et vaut 1.
Dans les calculatrice, ceci n'est pas pris en compte.
la fonction f: x --> x^x est prolongeable par continuité en zéro.
Donc 0 puissance 0 existe et vaut 1.
Dans les calculatrice, ceci n'est pas pris en compte.
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1972
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: a puissance n en Pascal ?
Admin a écrit:manianis et lamia:
la fonction f: x --> x^x est prolongeable par continuité en zéro.
Donc 0 puissance 0 existe et vaut 1.
Dans les calculatrice, ceci n'est pas pris en compte.
C'est toi qui le dit, personnellement j'en sais rien sur cela

lamia- Admin




- Messages : 1509
Inscrit le : 04 Nov 2007
Age : 22
Localisation : Tunis
Feuille de personnage
Capacité linguistique:


(996/1000)
Re: a puissance n en Pascal ?
On a discuté ce sujet il y a quelques mois.
Il a été très détaillé. Voir le lien suivant:
Cliquer ici: Meilleure façon pour calculer a puissance n
@+
Il a été très détaillé. Voir le lien suivant:
Cliquer ici: Meilleure façon pour calculer a puissance n
@+
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1972
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: a puissance n en Pascal ?
lamia:
Je n'ai rien inventé
Je vais posté comme nouveau sujet. C'est le moment opportun pour le faire.
Je n'ai rien inventé
Je vais posté comme nouveau sujet. C'est le moment opportun pour le faire.
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1972
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: a puissance n en Pascal ?
Admin a écrit:lamia:
Je n'ai rien inventé
Je vais posté comme nouveau sujet. C'est le moment opportun pour le faire.
Bonne idée , comme ca, ca nous apportera un plus.

lamia- Admin




- Messages : 1509
Inscrit le : 04 Nov 2007
Age : 22
Localisation : Tunis
Feuille de personnage
Capacité linguistique:


(996/1000)
Re: a puissance n en Pascal ?
lim x^x = 1
x --> 0
Attention Nabil le fait qu'il existe une limite pour x^x ne veut pas dire que x^x = 1 lorsque x=0. C'est simplement une limite.
x --> 0
Attention Nabil le fait qu'il existe une limite pour x^x ne veut pas dire que x^x = 1 lorsque x=0. C'est simplement une limite.
manianis- Admin


- Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: a puissance n en Pascal ?
manianis:
Il y a ce qu'on appelle la prolongation par continuité, c'est-à-dire, si une fonction n'est pas définie en x0 et pourtant elle admet une limite finie L en x0, alors on peut la rendre "définie en x0" en affectant à f(x0) la limite trouvée L => f(x0) = L.
C'est exactement le cas ici:
Il y a ce qu'on appelle la prolongation par continuité, c'est-à-dire, si une fonction n'est pas définie en x0 et pourtant elle admet une limite finie L en x0, alors on peut la rendre "définie en x0" en affectant à f(x0) la limite trouvée L => f(x0) = L.
C'est exactement le cas ici:
f(x) = x^x n'est pas définie au début en zéro.
mais lim f(x) en 0 est finie, alors, f(0) = 1, conséquence de la prolongation par continuité de f en 0.
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1972
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: a puissance n en Pascal ?
Merci pour la solution!
informix, Ecole d'ingénieurs
Les passions font vivre l'Homme; sa sagesse le fait seulement durer.
Les passions font vivre l'Homme; sa sagesse le fait seulement durer.

informix- Membre fondamental

- Messages : 350
Inscrit le : 19 Mar 2007
Feuille de personnage
Capacité linguistique:


(1000/1000)




