« Mathématiques avec Python et Ruby/Une tortue qui accélère la résolution de problèmes » : différence entre les versions

aucun résumé de modification
Aucun résumé des modifications
Aucun résumé des modifications
On obtient alors un histogramme de ce genre (la tortue est encore visible à droite):
 
[[Fichier:galtonpy1Galtonpy1.svg|476px|center]]
 
 
 
=Fractales=
 
La [[w:flocon de Koch|courbe de Von Koch]] est classiquement défini par la récursivité. Mais elle n'est pas nécessaire si on utilise une [[w:RegExp|expression régulière]]. En fait, on peut écrire un script Python qui produit un script Python, puis exécuter celui-ci!
 
==Triangle de départ==
 
Comme le script qui va dessiner le triangle fractal sera assez long, on va utiliser des abréviations: ''fd'' au lieu de ''forward'', ''lt'' au lieu de ''left'' et ''rt'' au lieu de ''right''. Alors pour dessiner un triangle on peut faire ceci:
 
<source lang="python">
from turtle import *
 
fd(100); rt(120); fd(100); rt(120); fd(100); rt(120)
</source>
 
Ou mieux, en stockant ce programme en Python dans une variable ''programme'':
 
<source lang="python">
from turtle import *
 
programme='fd(100); rt(120); fd(100); rt(120); fd(100); rt(120)'
exec(programme)
</source>
 
Dans un premier temps, on va abréger encore plus, en notant chaque instruction de ce programme par une seule lettre:
 
# ''A'' (comme ''avance'') pour ''fd(100)'';
# ''g'' (comme ''gauche'') pour ''lt(60)'';
# ''d'' (comme ''droite'') pour ''rt(120)''.
 
La traduction se fait par une ''RegExp'', qui, tel un chien de chasse, cherche toutes les occurences d'une lettre, et les remplace par le texte correspondant.
 
Alors le programme pour créer un programme qui dessine un triangle devient:
 
<source lang="python">
from turtle import *
from re import *
 
programme='AdAdAd'
programme=sub('A','fd(100); ',programme)
programme=sub('d','rt(120); ',programme)
exec(programme)
</source>
 
Le remplacement des lettres mnémotechniques par des instructions en Python est à l'image de ce que fait un [[w:compilateur|compilateur]] comme celui de Python. Avec ça, au moins, la recette pour dessiner un triangle est facile à retenir: ''avancer; tourner; avancer; tourner; avancer; tourner''.
 
==Modification du script==
 
==Dessin du triangle de Von Koch==
 
=Voir aussi=
1 277

modifications