« Programmation objet et géométrie/SmallTalk par l'exemple » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Ligne 40 :
</source>
 
La syntaxe est donnée sur la première ligne, et est à lire ''pgcd avec t1''. Les traits verticaux de la deuxième ligne encadrent la liste des variables, il y en a donc 2 ici. Elles sont initialisées avec les deux entiers (''/1>self'' et ''t1'') dont on veut le pgcd, puis on lance un test de nullité sur ''t2''. Tant que ce test échoue (c'est-à-dire tant que ''t2'' n'est pas nul), on remplace ''t2'' par le reste euclidien et ''t3'' par ''t2''. Puis (c'est-à-dire quand le test de nullité sur ''t2'' réussit) on renvoie la valeur absolue de ''t3''. On voit donc que SmallTalk sait calculer le pgcd de deux entiers relatifs.
 
===Conversion en fraction===
Ligne 95 :
squared
^ Fraction numerator: numerator squared denominator: denominator squared
</source>
 
==Réels==
 
===Inverse===
 
L'inverse d'un réel est le quotient de 1 par celui-ci:
 
<source lang="smalltalk">
reciprocal
^ 1.0 / self
</source>
 
===Nombre pseudo-aléatoire===
 
<source lang="smalltalk">
initialize
super initialize.
[seed := (Time millisecondClockValue bitAnd: 1073741823)
bitXor: self hash.
seed = 0] whileTrue.
a := 16807 asFloat.
m := 2147483647 asFloat.
q := (m quo: a) asFloat.
r := (m \\ a) asFloat
</source>