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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Free Pascal Discussion :

Problème avec randomize [FAQ]


Sujet :

Free Pascal

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 162
    Points : 82
    Points
    82
    Par défaut Problème avec randomize
    Bonjour,
    dans ce programme mon but est de faire afficher 8 nombres au hazard entre 1 et 15, ce que j'ai réussi à faire. Mais le problème réside dans le fait, qu'avant que ce nombre apparaisse, plusieurs sauts de lignes. Peut être que ça a un lien avec const max=15.
    Pouvez vous m'éclairer?
    Merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    program ptest;
    uses crt;
    const max=15;
    var i,n:integer;
     
    begin
    clrscr;
    randomize;
    n:=random(max);
     
    for i:=1 to 8 do
    begin
    writeln(n);
    n:=random(max);
    end;
    end.

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    C'est marrant d'afficher un nombre avant de le "créer" ! Ca serait plus logique de faire un random avant d'afficher quoi que ce soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    program ptest;
    uses crt;
    const
      max=15;
    var
      i,n:integer;
     
    begin
      clrscr;
      randomize;
     
     for i := 1 to 8 do
      begin
        n := random(max);
        writeln(n);
      end;
     
    end.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 162
    Points : 82
    Points
    82
    Par défaut
    Bonjour,
    mon problème n'est pas régler et aussi j'avais déjà crée le nombre avant(en fait je l'ai crée deux fois). Mis à part ça, même votre programme affiche plusieurs sauts de ligne avant que 8 nombres s'affichent aléatoirement. Pourvez régler ce qui déconne? Moi, je ne vois pas du tout où est le problème.
    Merci d'avance

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 950
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 950
    Points : 5 667
    Points
    5 667
    Par défaut
    Lab,

    Donne-nous une copie d'é"cran de ta sortie, car absolument rien ne justifie la sortie de plusieurs sauts de ligne avant ce qui est demandé par le programme.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 162
    Points : 82
    Points
    82
    Par défaut
    Salut,
    c'est bon j'ai trouvé quel est le problème. En fait, lorsque j'éxécute sans mettre clrscr dans le programme principal, il n'y pas plus de sauts de lignes. Les sauts de lignes ont donc été engentré par le clrscr du programme.
    En bref sans clrscr j'obtiens dans le terminal:

    .../Desktop]$ ./ptest
    6
    6
    1
    3
    0
    1
    10
    12
    Maintenant avec le clrscr:

    .../Desktop]$ ./ptest








    0
    0
    4
    13
    10
    5
    1
    5
    Voila
    Encore merci

  6. #6
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 964
    Points : 59 678
    Points
    59 678
    Billets dans le blog
    2
    Par défaut
    Il y a peut-être un bug de clrscr sous Linux, à faire remonter aux développeurs de Free Pascal ?

  7. #7
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 950
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 950
    Points : 5 667
    Points
    5 667
    Par défaut
    Lao,
    Citation Envoyé par Alcatîz
    Il y a peut-être un bug de clrscr sous Linux, à faire remonter aux développeurs de Free Pascal ?
    Il faudrait quand même faire quelques tests avant, par exemple, voir si le problème existe sur une autre machine ?

    Je ne peux pas vérifier, je ne programme pas sur Linux

  8. #8
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 843
    Points
    4 843
    Par défaut
    lol c'était ça ?
    Il fallait dire que tu programmais sous linux et que tu utilisais la console linux pour tester.

    Le fonctionnement du clear-screen sous linux (en tout cas les distribs que je connais) consiste à faire remonter le texte visible de l'écran et non à l'effacer de la console (comme sous Windows). Essaye de taper 'clrscr' dans une console, tu verras.

    A partir de là, c'est normal que ton compilateur fasse appel à la commande de l'OS.
    Ce n'est donc pas un bug de clrscr, c'est juste la façon dont il implémenté sous linux.

Discussions similaires

  1. Problème avec random
    Par pandora19 dans le forum Linux
    Réponses: 3
    Dernier message: 12/02/2012, 00h01
  2. Problème avec Random
    Par Mike888 dans le forum Général Java
    Réponses: 2
    Dernier message: 14/10/2009, 18h07
  3. Problème avec random
    Par Sekigawa dans le forum ASP.NET
    Réponses: 1
    Dernier message: 30/09/2009, 13h53
  4. Problème fonction random avec linux
    Par fabetvince dans le forum C
    Réponses: 12
    Dernier message: 25/05/2006, 23h45
  5. Problème avec Random
    Par Mvu dans le forum ASP
    Réponses: 2
    Dernier message: 28/09/2005, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo