:: Nombres aléatoires ::
1/ Le listing brut :
10 FOR X=1 TO 10
20 PRINT RND(1),
30 NEXT
Ce programme génère dix chiffres compris en 0 et 1 avec
10 chiffres après la virgule. Voici un autre programme plus
élaboré :
10 FOR X%=1 TO 12
20 ? INT(RND(1)*10),
30 NEXT
Ici, on génère douze chiffres entiers compris entre 0 et
9.
2/ Le listing commenté :
10 FOR X=1 TO 10
// Ligne 10 : On initialise la variable de type
FLOTTANT appelée X à 1 et on boucle tant que son contenu
est inférieur à 11.
20 PRINT RND(1),
// Ligne 20 : On génère un chiffre
aléatoire (RND, Random) compris entre 0 et 1 et on l'affiche.
30 NEXT
// Ligne 30 : On incrémente la variable X de
1 et on saute à la ligne numéro 10 tant que le contenu de
X est inférieur à 11.
10 FOR X%=1 TO 12
// Ligne 10 : On initialise la variable de type
ENTIER appelée X% à 1 et on boucle tant que son contenu
est inférieur à 13.
20 ? INT(RND(1)*10),
// Ligne 20 : On génère un chiffre
aléatoire (RND, Random) compris entre 0 et 1, on le multiplie
par 10 et on affiche sa valeur entière.
30 NEXT
// Ligne 30 : On incrémente la variable X% de
1 et
on saute à la ligne numéro 10 tant que le contenu de X%
est inférieur à 13.
3/ Commentaires additionnels :
La fonction RND accepte des paramètres compris entre 0 et
l'infini (enfin, vous savez ce que j'en pense moi de l'infini avec les
ordinateurs, hein...). En vérité, le C64 crée une
suite de nombres aléatoires à partir d'un chiffre de
départ (appelé "seed") quand on l'allume. Le
paramètre passé à RND est un leurre, il n'y a
guère que son signe qui compte (positif, zéro,
négatif). Si le paramètre est à zéro, un
chiffre aléatoire est généré en utilisant
un timer interne de l'ordinateur. Un paramètre négatif
provoque une mise à jour de la liste des chiffres
aléatoires.
L'instruction PRINT INT(RND(0)*50) retourne un résultat compris
entre 0 et 49 et non pas entre 0 et 50. L'instruction PRINT
INT(RND(0)*50)+1 donnera des résultats allants de 1 à 50.