Laboratoire pédagogique du Greta du Velay

Laboratoire pédagogique du Greta du Velay

Beauté informatique...

Temps de lecture estimé à 1 min.
C'est possible, à condition d'y être sensible ! Ruby, le langage qui monte qui monte en donne un exemple. Une simple ligne de code permet de tracer un triangle de Sierpinski :
32.times{|y|print" "*(32-y),(0..y).map{|x|~y&x>0?" .":" A"}}
Le résultat :

Il suffit de remplacer 32 par le nombre de lignes souhaitées.

Bravo à Brian Mitchell (via DZone Snippets)

Explications

Ce programme exploite la compacité du langage Ruby pour tracer un semblant de triangle de Sierpinski. En fait il n'implémente pas un algorithme récursif mais utilise une petite formule magique (cf. commentaires) qui permet de tracer le triangle dans un espace discret. On peut récrire le programme d'une façon plus claire et traditionnelle :
n = 32
for y in (0..n-1) do            # pour y allant de 0 à n-1 (c-a-d pour chaque l
    ligne = " "*(n-y)               # créer n espaces (puis n-1, puis n-2...)
                                    # représente la pente gauche du triangle
    for x in (0..y) do              # pour x allant de 0 à y (c-a-d pour chaque
        if (~y & x > 0) then            # ~y est le complément binaire de y, & le ET binaire
                                        # c'est la formule magique du programme
            ligne = ligne + "  "            # si (~y & x) > 0 la colonne contient un espace
            ligne = ligne + " A"            # sinon c'est un 'A'
        end
    end
    print ligne                 # afficher la ligne et passer à la suivante
end

D'autres lieux d'amusement : 99 bottles of beer dans 1200 langages de programmation...