a puissance n en Pascal ?
4 participants
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- Nombre Rationnel
- Nombre de messages : 399
Réputation : 4
Points : 6524
Date d'inscription : 19/03/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
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;
lamia- Modérateur
-
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6799
Date d'inscription : 04/11/2007
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- Nombre Réel
-
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 6253
Date d'inscription : 11/10/2007
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- Modérateur
-
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6799
Date d'inscription : 04/11/2007
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- Nombre Réel
-
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 6253
Date d'inscription : 11/10/2007
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.
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7870
Date d'inscription : 19/03/2007
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- Modérateur
-
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6799
Date d'inscription : 04/11/2007
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
@+
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7870
Date d'inscription : 19/03/2007
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.
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7870
Date d'inscription : 19/03/2007
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- Modérateur
-
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6799
Date d'inscription : 04/11/2007
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- Nombre Réel
-
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 6253
Date d'inscription : 11/10/2007
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.
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7870
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Re: a puissance n en Pascal ?
Merci pour la solution!
informix- Nombre Rationnel
- Nombre de messages : 399
Réputation : 4
Points : 6524
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(1000/1000)
Sujets similaires
» Pascal 4SI
» Cours Pascal
» boucle en pascal
» [résolu]Exercice: Approximation de Ln(1+x) en Pascal
» Sites pour des exercices Pascal
» Cours Pascal
» boucle en pascal
» [résolu]Exercice: Approximation de Ln(1+x) en Pascal
» Sites pour des exercices Pascal
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum