a puissance n en Pascal ?

Poster un nouveau sujet   Répondre au sujet

Voir le sujet précédent Voir le sujet suivant Aller en bas

a puissance n en Pascal ?

Message par informix le Mar 18 Déc - 19:12

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
informix, Ecole d'ingénieurs
Les passions font vivre l'Homme; sa sagesse le fait seulement durer.

informix
Membre fondamental
Membre fondamental

Messages : 350
Inscrit le : 19 Mar 2007

Feuille de personnage
Capacité linguistique:
1000/1000  (1000/1000)

Revenir en haut Aller en bas

Re: a puissance n en Pascal ?

Message par lamia le Mar 18 Déc - 20:44

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
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 confused )

lamia
Admin
Admin

Sexe:FémininViergeTigre
Messages : 1429
Inscrit le : 04 Nov 2007
Age : 22
Localisation : Tunis

Feuille de personnage
Capacité linguistique:
996/1000  (996/1000)

Revenir en haut Aller en bas

Re: a puissance n en Pascal ?

Message par manianis le Mar 18 Déc - 21:04

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
Admin

Sexe:Masculin
Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

Revenir en haut Aller en bas

Re: a puissance n en Pascal ?

Message par lamia le Mar 18 Déc - 21:10

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
Admin
Admin

Sexe:FémininViergeTigre
Messages : 1429
Inscrit le : 04 Nov 2007
Age : 22
Localisation : Tunis

Feuille de personnage
Capacité linguistique:
996/1000  (996/1000)

Revenir en haut Aller en bas

Re: a puissance n en Pascal ?

Message par manianis le Mar 18 Déc - 21:33

Je vous propose une autre méthode 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
Admin

Sexe:Masculin
Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

Revenir en haut Aller en bas

Re: a puissance n en Pascal ?

Message par nabiL le Mar 18 Déc - 21:37

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.
Nabil - tunis
خير الناس أنفعهم للناس

nabiL
Admin
Admin

Sexe:Masculin
Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

Revenir en haut Aller en bas

Re: a puissance n en Pascal ?

Message par lamia le Mar 18 Déc - 21:44

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 Smile

lamia
Admin
Admin

Sexe:FémininViergeTigre
Messages : 1429
Inscrit le : 04 Nov 2007
Age : 22
Localisation : Tunis

Feuille de personnage
Capacité linguistique:
996/1000  (996/1000)

Revenir en haut Aller en bas

Re: a puissance n en Pascal ?

Message par nabiL le Mar 18 Déc - 21:44

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


@+
Nabil - tunis
خير الناس أنفعهم للناس

nabiL
Admin
Admin

Sexe:Masculin
Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

Revenir en haut Aller en bas

Re: a puissance n en Pascal ?

Message par nabiL le Mar 18 Déc - 21:46

lamia:
Je n'ai rien inventé Smile
Je vais posté comme nouveau sujet. C'est le moment opportun pour le faire.
Nabil - tunis
خير الناس أنفعهم للناس

nabiL
Admin
Admin

Sexe:Masculin
Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

Revenir en haut Aller en bas

Re: a puissance n en Pascal ?

Message par lamia le Mar 18 Déc - 21:51

Admin a écrit:lamia:
Je n'ai rien inventé Smile
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
Admin

Sexe:FémininViergeTigre
Messages : 1429
Inscrit le : 04 Nov 2007
Age : 22
Localisation : Tunis

Feuille de personnage
Capacité linguistique:
996/1000  (996/1000)

Revenir en haut Aller en bas

Re: a puissance n en Pascal ?

Message par manianis le Mer 19 Déc - 12:17

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.

manianis
Admin
Admin

Sexe:Masculin
Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

Revenir en haut Aller en bas

Re: a puissance n en Pascal ?

Message par nabiL le Mer 19 Déc - 14:19

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:
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
Admin

Sexe:Masculin
Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

Revenir en haut Aller en bas

Re: a puissance n en Pascal ?

Message par informix le Sam 19 Jan - 19:30

Merci pour la solution!
informix, Ecole d'ingénieurs
Les passions font vivre l'Homme; sa sagesse le fait seulement durer.

informix
Membre fondamental
Membre fondamental

Messages : 350
Inscrit le : 19 Mar 2007

Feuille de personnage
Capacité linguistique:
1000/1000  (1000/1000)

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum