Précédent   Forum du club des développeurs et IT Pro > Autres langages > Pascal
Pascal Forum d'entraide sur la programmation en langage Pascal et sur les EDI. Avant de poster -> la F.A.Q Pascal, les cours
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 20/05/2012, 16h48   #1
contre
Invité de passage
 
Homme Abdelkader
Inscription : 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
Type de fichier : gif Capture.GIF (8,1 Ko, 24 affichages)
contre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2012, 17h32   #2
Archimède
Membre émérite
 
Avatar de Archimède
 
Homme anthony
Enseignant
Inscription : avril 2005
Messages : 1 021
Détails du profil
Informations personnelles :
Nom : Homme anthony
Localisation : France, Charente Maritime (Poitou Charente)

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : avril 2005
Messages : 1 021
Points : 973
Points : 973
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.

@+
__________________
Citation:
tout développeur plongé dans son code subit une poussée d'urticaire de bas en haut égale au poids du volume d'unités qu'il ajoute.
Archimède est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 20/05/2012, 21h12   #3
contre
Invité de passage
 
Homme Abdelkader
Inscription : 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 ?
contre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2012, 21h39   #4
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 683
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 683
Points : 1 001
Points : 1 001
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.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/05/2012, 18h28   #5
contre
Invité de passage
 
Homme Abdelkader
Inscription : 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
Type de fichier : gif Capture.GIF (11,2 Ko, 23 affichages)
contre est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/05/2012, 21h55   #6
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 683
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 683
Points : 1 001
Points : 1 001
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.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h24.


 
 
 
 
Partenaires

Hébergement Web