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

 Delphi Discussion :

Mot tiré au sort


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Par défaut Mot tiré au sort
    Bonjour à tous!
    J'ai un petit problème auquel je ne trouve pas de solutions, malgrès mes recherches !
    Voilà en gros je cherche comment faire une procédure qui tire au sort un mot dans un tableau... Je ne vois vraiment pas comment faire !

    Merci d'avance !

  2. #2
    Membre Expert
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Par défaut
    il suffit de faire un randomize sur l'indice de ton tableau
    a+

  3. #3
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    SAlut
    [Edit] +1 Archimede, je suis encore a la bourre [/Edit]
    Petite recherche et hop
    http://www.developpez.net/forums/sho...d.php?t=299887

    Dans ton cas il te faudra mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    I := random(NombreMaxDeCase)
    Et ensuite utiliser I comme numero d'index de ton tableau

    A++
    Qwaz
    Ps: bienvenue parmis nous

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Par défaut
    Pourrais-tu me préciser comment on fait cela ?
    Merci d'avance

    Edit :
    Ah c'est bon merci Beaucoup

  5. #5
    Membre Expert
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Par défaut
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    const tabmot:array[1..5] of string =('un','deux','trois','quatre','cinq');
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    randomize;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    var i:integer;
    begin
    i:=random(4)+1;
    caption:=tabmot[i];
    end;

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Par défaut
    C'est un peu trop évolué pour moi tout ce
    Lol en tout cas merci quand même,j'ai compris le principe,ca m'a bien aider !
    Seul petit problème, en mettant :

    Const
    Max = 10;
    Var
    n:integer;
    begin
    Randomize;
    n:=Random (Max);
    Writeln (n);
    Readln;
    end;

    Ca marche niquel, par contre dès que j'essaye de créer une procredure :

    Procedure aleatoire (n:integer);
    begin
    Randomize;
    n:=Random (Max);
    end;

    Var
    i:integer;

    begin
    aleatoire (i);
    Writeln (i);
    Readln;
    end.

    Là ca bug... J'ai le droit à des "216849563" comme résultat... Une idée ?
    Ps : Dsl je suis un débutant débutant, en première année de prépa

  7. #7
    Membre Expert
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Par défaut
    tu dépasses la limite d'un integer.
    random renvoie de 0 à max donc max+1 et là ça plante car > à integer;
    d'où la limite supérieure d'un integer en message d'erreur.
    =>n:=random(max-1);

    non excuse, j'ai mal lu max=10! ok
    le prob est que tu envoies une variable dans le paramètre de ta procédure.

  8. #8
    Membre Expert
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Par défaut
    si tu vex vraiment faire quelque chose tu fais une fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function aleatoire;
    begin
    result:=random(max);
    end;
     
    n:=aleatoire;
    ça ne présente pas beaucoup d'intérêt...

  9. #9
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 971
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 971
    Par défaut
    Nuo,
    Citation Envoyé par Smirn Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Procedure aleatoire (n:integer);
      begin
       Randomize;
       n:=Random (Max);
      end;
    Il y a déjà eu pas mal de réponses, et j'espère que tu as compris l'inutilité de ta procédure, qui, au minimum, devrait être transformée en fonction.

    De toute manière, ta procédure, telle qu'elle est écrite, ne fait absolument rien !!

    En effet, tu passes le paramètre n par valeur, et la procédure ne fait que modifier la copie locale obtenue, sans le moindre effet sur la variable que tu pensais ainsi modifier.

Discussions similaires

  1. Extraction de mots clés
    Par Olive1808 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 01/02/2016, 20h49
  2. Réponses: 0
    Dernier message: 28/06/2015, 12h28
  3. Tirage au sort d'un mot
    Par Dav-D dans le forum C
    Réponses: 39
    Dernier message: 04/01/2007, 17h04
  4. Au sujet des mots de passe
    Par FranT dans le forum Langage
    Réponses: 6
    Dernier message: 17/09/2002, 22h16
  5. [langage] Reconnaissance de mots
    Par Flo. dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2002, 23h34

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