Comment remplir intelligemment un tableau de valeurs ?

Résolu
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 - 20 mars 2008 à 22:06
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 - 21 mars 2008 à 17:30
Bonjour,

J'ai cherché longtemps sur Codes-Sources et sur l'aide Delphi, mais je n'ai trouvé aucune réponse à mon problème. Voila : je voudrais, dans un tableau de valeurs [1..9] (integer) dans chacune de ses valeurs mettre un nombre entre 1 et 9 sans doublon et sans blanc.
J'ai tout essayé mais je n'y arrive pas ...
Il doit y avoir une solution ?

Cordialement, Bacterius !

4 réponses

Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
21 mars 2008 à 11:35
une astuce qui vaut ce qu'elle vaut :
utilise une TList dans laquelle tu stock tes integer au lieu de pointeurs. Ensuite tu peux faire des actions sur cette liste (swap, indexOf, ...).
par exemple:
 Positionde4 := MaList.IndexOf(Pointer(4));
 ElementEn5emePosition := integer(MaList[5]);
...

tout depend de ce que tu veux faire ensuite de ce tableau.
3
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
21 mars 2008 à 15:36
Salut,

Je suis d'accord avec Guillemouze.

Mais, avec l'exemple que tu nous donnes, il y a une solution un peu plus simple qui vaut aussi ce qu'elle vaut :)

  var     S : String;
          TirageArray : array[1..9] of Integer;
          i, T : Integer;
  begin
  Randomize;
  S := '123456789';
  for i := 1 to 9 do begin
    T := Random(Length(S)) + 1;
    TirageArray[i] := StrToInt(S[T]);
    Delete(S,T,1);
  end;
3
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
21 mars 2008 à 17:26
Bonjour, pas mal ta technique Caribensila :)
Je vais tout de suite l'essayer ;) Merci !


Cordialement, Bacterius !

PS : et si ca ne marche pas j'essayerai celle de Guillemouze ;)
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
21 mars 2008 à 17:30
Re,
C'est parfait ca marche :) j'ai fait un genre de mélange entre les deux techniques et ca marche super bien merci Guillemouze et Caribensila :)

Cordialement, Bacterius !
0
Rejoignez-nous