Accueil - Forum - Bibliothèque de ressources
____

Opérations mathématiques

1) Les classes Integer et Float

La classe principal est la classe Object. Dans cette classe, on retrouve la classe Array (Tableau), String (Chaine de caractère) ..etc, on a la classe Numeric et Matrix. Dans la classe Numeric, on a les classes qui nous interesse : Integer et Float.

a) Integer

Integer est tout simplement les entiers comme 5 ou 998. Integer est donc la base des nombres entiers et particulièrement de Fixnum. On retrouve donc deux sous classes : Fixnum et Bignum.

Qu'est ce que Fixnum et Bignum ? - Fixnum est la classe représentant des entiers de longueur fixe qui s'appuie sur la capacité native de l'ordinateur, qui s'adapte au pointeur de la machine (32 bits) - Bignum est la classe pour les entiers de grandes tailles où la classe Fixnum ne peut gérer.

La méthod1e Integer du module Kernel permet de convertir un type différent en un entier :

Code RubyInteger(5.3)    # => 5 ; Conversion d'un Float
Integer(0x15)    # => 21 ; Conversion d'un nombre héxadécimal
Integer(?a)     # => 97 ; Conversion d'un code de caractère
?>

Vous pouvez aussi tester si un nombre est un entier avec la méthode "integer?" :

Code Ruby5.integer? # => true
5.0.integer? # => false
?>

Cette méthode renvoie, comme vous l'avez vu, un booléen : true ou false

Vous pouvez savoir le successeur d'un nombre ou bien obtenir le caractère associé à un code numérique entier :

Code Ruby5.next # => 6
100.chr # => "d"
?>

"next" prend donc le nombre suivant et "chr" le code numérique :)

b) Float

Float est tout simplement les nombres à virgule flottante comme 5.0 ou 998.356. De la même manière que Integer, il existe la méthode Float pour faire des conversions :

Code RubyFloat(5)        # => 5.0 Conversion d'un Integer
Float(0x15)      # => 21.0 Conversion d'un nombre héxadécimal
Float(?a)       # => 97.0 ; Conversion d'un code de caractère
?>

Vous pouvez savoir si un nombre est finie ou inifinie avec les méthodes "finite?" et "infinite?".
Pour "infinite?" : Si la valeur est + infini, ça renvoie 1, sinon si c'est - infini, ça renvoi -1.
Pour "finite?" : envoie d'un booléen true si la valeur est infinie.

Code Ruby(1.0/0.0).infinite? # => 1
(-1.0/0.0).infinite? # => -1

(1.0/0.0).finite? # => false
(-1.0/0.0).finite? # => false
?>

La méthode "nan?" vous permet de savoir si la valeur est NaN ("Not a Number" => Pas un nombre). La division de 0 par 0 aboutit à une valeur NaN.

Code Rubyvar = 0.0/0.0
 var.nan? # => true
?>

2) Méthodes et modules mathématiques
a) Valeur absolu, arrondis

Code Ruby5.abs # => 5
 -5.abs # => 5
 
 4.5.ceil # => 5
 4.5.floor # => 4
 
 4.51.round # => 5
 4.49.round # => 4
?>

"abs" prend la valeur absolu d'un nombre. "ceil" arrondi le nombre à la valeur supérieur et "floor" à la valeur inférieur. "round" arrondi au nombre le plus proche.

b) Intervalle

L'intervalle s'écrit de cette façon : (i..f) où i est la valeur initiale et f la valeur finale.
Ainsi, vous pouvez tester si un nombre est présent dans l'intervalle avec la méthode === :

Code Ruby(1..45) === 34 # => true
?>

La classe Range permet de la même manière de créer des intervalles :

Code Rubyintervalle = Range.new(1, 45)
?>

Il est possible de savoir le premier ou dernier élément de l'intervalle :

Code Ruby(1..45).begin # => 1
 (1..45).first # => 1
 
 (1..45).end # => 45
 (1..45).last # => 45
?>

Les méthodes "begin" ou "first" prennent le premier élément et les méthodes "end" et "last" les derniers éléments.

c) Module mathématique

Il existe un module : Math
Avec celui ci, vous pouvez faire des calculs mathématiques plus facilement. Ainsi pour savoir la racine carrée de 4, il faudra faire :

Code RubyMath.sqrt(4) # => 2.0
?>

Vous retrouvez toutes les fonctions du module dans le fichier d'aide de RPG Maker XP :)

Informations
Page vue 3434 fois | Auteur : Samarium

RPG Creative version 5 - Libérez votre créativité ! ; Mai 2005 - Mai 2012
0.052s - Optimisé pour une résolution 1024*728 - Tous droits réservés.

Contact - Partenaires - Historique - A propos