« 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 2 :
 
Le logiciel [[w:DrGeoII|Dr. Geo II]] illustre la notion de [[w:Récursivité|récursivité]] par l'exemple: Écrit en [[w:SmallTalk|SmallTalk]], il est aussi muni d'une console SmallTalk, ce qui permet d'utiliser ''DrGeoII'' pour regarder comment ''DrGeoII'' lui-même est fait! Ce qui permet (même si ce n'est pas nécessairement recommandé) de modifier DrGeoII depuis DrGeoII, un peu comme un Cyborg qui s'opère, ou comme le [[w:Réparation de l'ADN|vivant]]! Mais sans aller jusqu'à de telles extrémités risquées, on va ici utiliser ce pouvoir d'introspection de ''DrGeoII'' pour regarder quels algorithmes sont utilisés par le logiciel, et le présent article peut être considéré comme une introduction mathématique (et surtout géométrique) au langage ''SmallTalk''.
 
Pour consulter le code source de ''DrGeoII'' depuis ''DrGeoII'', on clique depuis une figure DrGeoII sur ''modifer un script'' et là, on clique sur ''Browse''. Il ne reste alors plus qu'à surfer...
 
=Nombres=
 
Les algorithmes numériques sont surtout groupés dans ''KernelNumbers''
 
==Entiers==
Ligne 19 ⟶ 23 :
</source>
 
Ce qui peut se traduire ainsi: On commence par tester si l'entier en question est nul. Si le test réussit (c'est-à-dire si le nombre est effectivement nul), on renvoie 1, ce qui signifie que la factorielle de 0 est 1 par définition. Puis on lance un nouveau test sur le signe de l'entier. Si le test réussit (c'est-à-dire si l'entier est positif) on renvoie le produit de l'entier par la factorielle de son prédécesseur. Sinon on envoie un message d'erreur rappelant que seuls les nombres positifs ont une factorielle. On constate que cet algorithme est récursif.
 
===CalculConversion deen pgcdfraction===
 
<source lang="smalltalk">
asFraction
"Answer a Fraction that represents the value of the receiver."
 
^Fraction numerator: self denominator: 1
</source>
 
==Fractions==