Re-salut,
On Sun, Jul 03, 2011 at 02:59:48PM +0200, Benoît Vaillant wrote:
> Sinon, juste concernant mon code, c'est peut-être un peu "chaud" à
> expliquer. Il doit exister des exemples plus simples et plus concrêts,
> du genre (pseudo-code) :
> pour $N=1 à 10 {
> si $N=3 { # on saute cette étape
> $N=$N+1
> }
> # faire des trucs
> }
Cet exemple est mauvais car le "répète" marche is on fait un "si $N
différent de 3".
A mon avis, pour expliquer la différence, tu peux peut-être tenter de
résoudre le problème suivant. Avec un repeat, ça devrait être plus dur
ou du moins devoir être enrobé dans une fonction :
Déplacer aléatoirement la tortue de 30° à droite ou gauche en la
faisant avancer de 10 pour qu'elle revienne à son point de départ en
100 étapes au plus.
Idée avec un "pour" qui montre (j'espère) la différence qu'il y a
d'avec un "répète" (pseudo-code, encore) :
reset
pour $N=1 à 100 {
si $N>1 { # on a bougé
# vérifier la position de la tortue, si on est au point de départ,
# on a trouvé un chemin aléatoire. Quitter le programme
}
# bouger la tortue aléatoirement, par exemple de 30° à droite ou gauche
si $N=100 { # c'est le max
si "position<>0,0" { # il faut recommencer, on n'a pas trouvé
"goto 0,0" # on remet la tortue en place
reset # on nettoie l'écran
$N=1 # on recommence à compter
# ce retour au début n'est pas possible à l'intérieur d'un répète
}
}
}
Bon, évidemment, ça mène du coup à la question : « mais alors, c'est
comme un while ? ». La réponse là étant bah oui, mais c'est pas écrit
pareil :)
Ah, sacré farceur de Turing... ;)
--
Benoît Vaillant
~/.gnupg/public_key.txt
Description: Digital signature
_________________________________ Linux mailing list [email protected] http://lists.parinux.org/mailman/listinfo/linux
