Section courante

A propos

Section administrative du site

LOG10

Logarithme en base 10
PL/1

Syntaxe

Y=LOG10(X);

Paramètres

Nom Description
X Ce paramètre permet d'indiquer l'expression contenant le nombre à traiter

Description

Cette fonction retourne le logarithme de la base 10.

Algorithme

MODULE SQRT(X)
   SI X = 0.0 ALORS
      RETOURNE 0.0
   SINON
      M ← 1.0
      XN ← X
      BOUCLE FAIRE TANT QUE XN >= 2.0
         XN ← 0.25 x XN
         M ← 2.0 x M
      FIN BOUCLE FAIRE TANT QUE
      BOUCLE FAIRE TANT QUE XN < 0.5
         XN ← 4.0 x XN
         M ← 0.5 x M
      FIN BOUCLE FAIRE TANT QUE
      A ← XN
      B ← 1.0 - XN
      BOUCLE REPETER
         A ← A x (1.0 + 0.5 x B)
         B ← 0.25 x (3.0 + B) x B x B
      FIN BOUCLE JUSQU'A B ← 1.0E - 15
      RETOURNE A x M
   FIN SI

MODULE LOG(x)
   negatif ← faux
   fois ← 1
   ajout ← 0
   SI x <= 0.0 ALORS
      RETOURNE 0
   FIN SI
   SI x < 1.0 ALORS
      negatif ← vrai
      x ← 1.0 / x
   FIN SI
   BOUCLE FAIRE TANT QUE x >= 10.0
      x ← x / 10.0
      ajout ← ajout + 2.302585092994046
   FIN BOUCLE FAIRE TANT QUE
   BOUCLE FAIRE TANT QUE x >= 1.1
      x ← SQRT(x)
      fois ← fois x 2
   FIN BOUCLE FAIRE TANT QUE
   x ← x - 1
   savx ← x
   i ← 2
   xp ← x x x
   quotient ← (xp / i)
   dl ← x - quotient
   BOUCLE FAIRE TANT QUE 1.0E-15 ← quotient
      i ← i + 1
      xp ← xp x x
      dl ← dl + (xp / i)
      i ← i + 1
      xp ← xp x x
      quotient ← (xp / i)
      dl ← dl - quotient
   FIN BOUCLE FAIRE TANT QUE
   dl ← dl x fois
   dl ← dl + ajout
   SI negatif ALORS
      dl ← -dl
   FIN SI
   RETOURNE dl

MODULE LOG10(DansNombre)
   RETOURNE LOG(DansNombre) / 2,3025850930

Exemple

Voici un exemple permettant d'afficher le logarithme en base 10 inférieurs à 2 :

  1.  Corps: PROC options(main);
  2.       DECLARE (I) float;
  3.       DO I = 0.1 TO 2.0 BY 0.1;
  4.           display('LOG10(' || I || ')=' || log10(I));
  5.       END;
  6.  END Corps;

on obtiendra le résultat suivant :

LOG10( 1.00000E-0001)=-1.00000E+0000
LOG10( 2.00000E-0001)=-6.98970E-0001
LOG10( 3.00000E-0001)=-5.22879E-0001
LOG10( 4.00000E-0001)=-3.97940E-0001
LOG10( 5.00000E-0001)=-3.01030E-0001
LOG10( 6.00000E-0001)=-2.21849E-0001
LOG10( 7.00000E-0001)=-1.54902E-0001
LOG10( 8.00000E-0001)=-9.69100E-0002
LOG10( 9.00000E-0001)=-4.57574E-0002
LOG10( 1.00000E+0000)= 5.17719E-0008
LOG10( 1.10000E+0000)= 4.13927E-0002
LOG10( 1.20000E+0000)= 7.91813E-0002
LOG10( 1.30000E+0000)= 1.13943E-0001
LOG10( 1.40000E+0000)= 1.46128E-0001
LOG10( 1.50000E+0000)= 1.76091E-0001
LOG10( 1.60000E+0000)= 2.04120E-0001
LOG10( 1.70000E+0000)= 2.30449E-0001
LOG10( 1.80000E+0000)= 2.55273E-0001
LOG10( 1.90000E+0000)= 2.78754E-0001


Dernière mise à jour : Lundi, le 13 octobre 2014