Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Invité de passage
    Homme Profil pro Abdelkader
    Inscrit en
    janvier 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Nom : Homme Abdelkader
    Localisation : Belgique

    Informations forums :
    Inscription : janvier 2012
    Messages : 3
    Points : 4
    Points
    4

    Par défaut Choisir un élément au hasard dans un tableau

    Bonjour,
    En pascal j’utilise la fonction Randomize pour générer des nombres aléatoires, pour générer une suite ou un tableau d’éléments au hasard voici un petit programme :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Program Aleatoire;
    Procedure hasard(n : Integer);
       Var k, x : Integer;
       Begin
          For k := 1 To n Do
             Begin
                x := Random(99)+1;
                Write(x : 4)
             End;
             WriteLn
       End;
       Begin
          Randomize;
          hasard (15)
       End.
    Une des exécutions donnera par exemple voir image ci-dessous :

    Ma question svp est la suivante :
    Comment générer au hasard un nombre d’éléments parmi la liste ci-dessus ?
    Exemple 6 éléments parmi les 15 éléments déjà générés.
    D’avance merci.
    Images attachées Images attachées

  2. #2
    Membre Expert
    Avatar de Archimède
    Homme Profil pro anthony LAURENT
    Enseignant
    Inscrit en
    avril 2005
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Nom : Homme anthony LAURENT
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2005
    Messages : 1 187
    Points : 1 136
    Points
    1 136

    Par défaut

    Tu fais un tableau de ton nombre d'éléments à générer au hasard... de 1 à 6 ou 0->5
    Tu refais un random(6)+1. le chiffre généré correspondra à l'indice de ton tableau...et tu vas ainsi offrir au hasard un de tes nombres.

    @+

  3. #3
    Invité de passage
    Homme Profil pro Abdelkader
    Inscrit en
    janvier 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Nom : Homme Abdelkader
    Localisation : Belgique

    Informations forums :
    Inscription : janvier 2012
    Messages : 3
    Points : 4
    Points
    4

    Par défaut Random tableau

    Merci Archimède
    Je n’arrive pas encore à matérialiser l’idée.
    Ce que j’ai compris c’est que mon tableau composer de 15 éléments à des indices allant de 0 a14 ou de 1 à 15, les indices de mon nouveau tableau de 6 cases recevront à chaque fois un Random (indice-ancien-tableau) non ?

  4. #4
    Rédacteur/Modérateur
    Avatar de Roland Chastain
    Homme Profil pro Roland Chastain
    Inscrit en
    décembre 2011
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Nom : Homme Roland Chastain
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : décembre 2011
    Messages : 1 301
    Points : 3 301
    Points
    3 301

    Par défaut

    Citation Envoyé par contre Voir le message
    Merci Archimède
    Je n’arrive pas encore à matérialiser l’idée.
    Ce que j’ai compris c’est que mon tableau composer de 15 éléments à des indices allant de 0 a14 ou de 1 à 15, les indices de mon nouveau tableau de 6 cases recevront à chaque fois un Random (indice-ancien-tableau) non ?
    Bonsoir !

    Dans le tableau de 6 cases, tu ne mettras pas le résultat de Random mais tu y iras prendre dans le tableau de 15 cases le nombre se trouvant à la place indiquée par Random.

    Par exemple, si Random=3, tu vas prendre le 3e élément du tableau de 15 cases, puis tu le places dans la première case vide de ton tableau de 6, jusqu'à ce que celui-ci soit plein.

    J'espère que cette reformulation t'aidera.
    L'Art est long et le Temps est court.

  5. #5
    Invité de passage
    Homme Profil pro Abdelkader
    Inscrit en
    janvier 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Nom : Homme Abdelkader
    Localisation : Belgique

    Informations forums :
    Inscription : janvier 2012
    Messages : 3
    Points : 4
    Points
    4

    Par défaut Choisir parmi Random

    Merci à vous l’idée a été comprise enfin voici un bricolage que j’essayerais de perfectionner prochainement:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Program Aleatoire;
    type tableau=array[0..99]of integer;
    procedure hasard( var t,t1:tableau;n:integer);
       Var k,z,j : Integer;
       Begin
          writeln('Premier tableau');
          For k := 0 To n-1 Do
             Begin
                t[k]:=random(9)+1;
                Write(t[k] : 4)
             End;
             WriteLn;
          writeln('deuxieme tableau');
          for j:=0 to 5 do
             begin
                z:=random(n);
                t1[j]:=t[z];
                write(t1[j]:4);
             end;
             writeln;
       End;
       var t,t1:tableau;
           n:integer;
       Begin
          n:=10;
          Randomize;
          hasard (t,t1,n)
       End.
    Images attachées Images attachées

  6. #6
    Rédacteur/Modérateur
    Avatar de Roland Chastain
    Homme Profil pro Roland Chastain
    Inscrit en
    décembre 2011
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Nom : Homme Roland Chastain
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : décembre 2011
    Messages : 1 301
    Points : 3 301
    Points
    3 301

    Par défaut

    Citation Envoyé par contre Voir le message
    Merci à vous l’idée a été comprise enfin voici un bricolage que j’essayerais de perfectionner prochainement:
    Il est très bien, ce programme.

    Code :
    1
    2
    3
    4
    5
    6
    7
     
    for j:=0 to 5 do
    begin
      z:=random(n);
      t1[j]:=t[z];
      ...
    end;
    L'Art est long et le Temps est court.

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •