Section courante

A propos

Section administrative du site

En REXX, il n'existe aucune fonction «Sin» ou «Sinus» permettant de calculer le Sinus d'un cercle. Pour remédier à se problème, il suffit de créer une fonction ressemblant à ceci :

  1. I = 0
  2. PI = 3.14159265359
  3. DO WHILE I < PI
  4.  SAY "Sinus(" || I || ")=" || Sin(I)
  5.  I = I + 0.1
  6. END
  7. EXIT
  8.  
  9. Sin :PROCEDURE  
  10.  Numeric DIGITS 12 
  11.  Arg X 
  12.  PI = 3.14159265359
  13.  X = X // (PI * 2)
  14.  IF X>+PI THEN X = X - (PI * 2) ELSE
  15.  IF X<-PI THEN X = X + (PI * 2)
  16.  F = X 
  17.  Y = X 
  18.  YY = X 
  19.  X = X * X 
  20.  DO N=2 BY 2 
  21.   F = -F * X / (N * (N + 1)) 
  22.   Y = Y + F 
  23.   IF YY = Y THEN LEAVE 
  24.   YY = Y 
  25.  END 
  26.  IF Abs(Y) < 1E-8 THEN Y = 0 
  27.  RETURN Y

on obtiendra le résultat suivant :

Sinus(0)=0
Sinus(0.1)=0.0998334166465
Sinus(0.2)=0.198669330795
Sinus(0.3)=0.295520206661
Sinus(0.4)=0.389418342308
Sinus(0.5)=0.479425538605
Sinus(0.6)=0.564642473394
Sinus(0.7)=0.644217687238
Sinus(0.8)=0.717356090900
Sinus(0.9)=0.783326909628
Sinus(1.0)=0.841470984805
Sinus(1.1)=0.891207360066
Sinus(1.2)=0.932039085967
Sinus(1.3)=0.963558185413
Sinus(1.4)=0.985449729992
Sinus(1.5)=0.997494986609
Sinus(1.6)=0.999573603033
Sinus(1.7)=0.991664810456
Sinus(1.8)=0.973847630879
Sinus(1.9)=0.946300087685
Sinus(2.0)=0.909297426829
Sinus(2.1)=0.863209366650
Sinus(2.2)=0.808496403817
Sinus(2.3)=0.745705212180
Sinus(2.4)=0.675463180551
Sinus(2.5)=0.598472144102
Sinus(2.6)=0.515501371823
Sinus(2.7)=0.427379880234
Sinus(2.8)=0.334988150158
Sinus(2.9)=0.239249329220
Sinus(3.0)=0.141120008060
Sinus(3.1)=0.0415806624350


Dernière mise à jour : Dimanche, le 16 novembre 2014