IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Cours de Turbo Pascal 7


précédentsommairesuivant

Chapitre 18 - Pseudohasard

Il est quelquefois nécessaire d'avoir recours à l'utilisation de valeurs de variables (scalaire ou réel) qui soient le fruit du hasard. Mais l'ordinateur n'est pas capable de créer du vrai hasard. Il peut cependant fournir des données dites pseudoaléatoires, c'est-à-dire issues de calculs qui utilisent des paramètres issus de l'horloge interne. On appelle cela un pseudohasard, car il est très difficile de déceler de l'ordre et des cycles dans la génération de ces valeurs pseudoaléatoires. Ainsi, on admettra que Turbo Pascal 7.0 offre la possibilité de générer des nombres aléatoires.

Avant l'utilisation des fonctions qui vont suivre, il faut initialiser le générateur pseudoaléatoire (tout comme il faut initialiser la carte graphique pour faire des dessins) avec la procédure Randomize. Cette initialisation est indispensable : en son absence, on obtiendra toujours la même séquence de nombres.

Syntaxe :

 
Sélectionnez
Randomize;

Randomize doit être appelée une seule fois, de préférence au début du programme principal.

On peut générer un nombre réel pseudoaléatoire compris entre 0 et 1 grâce à la fonction Random.

Syntaxe :

 
Sélectionnez
X := Random;

On peut générer un nombre entier pseudoaléatoire compris entre 0 et Y-1 grâce à la fonction Random(Y).

Syntaxe :

 
Sélectionnez
X := Random(Y);

Exemple :

 
Sélectionnez
Program Exemple22;
Uses 
  Crt;
Const 
  Max = 100;
Var 
  Test : Boolean;
  x, y : Integer;
BEGIN
  ClrScr;
  Randomize;
  y := Random(Max);
  repeat
    Write('Entrez un nombre : ');
    ReadLn(x);
    Test := (x = y);
    if test then 
      WriteLn('OK, en plein dans le mille.')
    else 
      if x > y then
        WriteLn('Trop grand.')
      else 
        WriteLn('Trop petit.');
  until Test;
  ReadLn;
END.

Dans ce programme Exemple22 (programme Chance typique des calculettes), on a génération d'un nombre pseudoaléatoire compris entre 0 (inclus) et une borne Max (exclue) définie comme constante dans la partie déclarative du programme : 0 <= nombre < Max. Ici, on prendra la valeur 100. L'utilisateur saisit un nombre, le programme effectue un test et donne la valeur true à une variable Boolean nommée Test si le nombre du joueur est correct; sinon, affiche les messages d'erreurs correspondants. Le programme fonctionne à l'aide d'une boucle repeat...until.


précédentsommairesuivant

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2001-2013 Hugo Etievant. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.