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

Attachment: ~/.gnupg/public_key.txt
Description: Digital signature

_________________________________
Linux mailing list
Linux@lists.parinux.org
http://lists.parinux.org/mailman/listinfo/linux

Répondre à