Generation aleatoire de caracteres selon une condition donnée

swadfish Messages postés 16 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 8 février 2010 - 8 nov. 2009 à 18:21
swadfish Messages postés 16 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 8 février 2010 - 9 nov. 2009 à 21:43
Bonjour
je vous prie de m'aider a résoudre mon problème qui consiste - selon le titre - a générer une chaine de caractère selon un critère précis.Je m'explique :Par exemple
je veux générer un nombre d'une certaine longueur( idem pour la chaine de caractère) aléatoire que son cumul (cumul ASCII) égal a 100 (idem $4DE).
j'ai fais une tentative sur des nombres est voila le résultat:

procedure TForm1.Button1Click(Sender: TObject);
var
  r,r1,r2,r3,r4:Integer;
  s1,s2,s3,s4:string;
begin
r1:=Random(10);
s1:=Format('%0.4d',[r1]);
r2:=Random(10);
s2:=Format('%0.4d',[r2]);
r3:=Random(10);
s3:=Format('%0.4d',[r3]);
r4:=Random(10);
s4:=Format('%0.4d',[r4]);
r:=r1+r2+r3+r4;
if r = 12 then
begin
edit1.Text:= s1+'-'+s2+'-'+s3+'-'+s4;
end
else
Randomize;
end;
end.

je veux savoir est ce que la manip marche avec les autres caracteres ( si ca marche biensur )
je sollicite votre aide pour résoudre ce problème
merci et bonne soirée!
My Life Is ... Delphi
A voir également:

7 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
8 nov. 2009 à 19:09
Je ne vois pas très bien ce que tu cherches à obtenir sachant que :
- le code ASCII, en décimal, du chiffre 0 est 48 et celui du chiffre 9 a pour code ASCII 57
- le code ASCII des lettres va de 65 pour la lettre A à 90 pour la lettre Z.
En cumulant les valeurs décimales des codes ASCII de 4 caractères (voir ton code), il est alors impossible de ne pas dépasser 100.

8000 Lévriers 'galgos' par an sont torturés et massacrés en Espagne
May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
8 nov. 2009 à 20:05
Salut,

«je veux savoir est ce que la manip marche avec les autres caracteres»

Oui :

Edit1.Text := chr(random(26)+65);

Mais, comme Delphiprog, je ne vois pas ce que tu veux faire.
0
swadfish Messages postés 16 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 8 février 2010
8 nov. 2009 à 20:21
Merci pour vos réponses messieurs
en ce qui concerne le 100 c'est qu'un exemple!
ce que je veux parvenir c'est générer des combinaisons soit des numéros ou des codes ascii quand je fais leur cumul soit les numeros ou bien les caracteres j'obtiens une somme deja definis dans le code
Exmple:
4365 >> 4+3+6+5 = 18
8811 >> 8+8+1+1 = 18
4833 >> 4+8+3+3 = 18
...
a chaque fois que je clique sur générer il me donne une combinaison a condition quelle soit égale a 18.
Merci pour votre aide!
My Life Is Delphi
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
9 nov. 2009 à 09:42
Bonjour,

A noter que tu peux avoir les cas :
r1 = 0
r2 = 4
r3 = 8
r4 = 6

et même :
r1 = 9
r2 = 9
r3 = 0
r4 = 0

etc etc..

cantador
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
swadfish Messages postés 16 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 8 février 2010
9 nov. 2009 à 12:44
oui c'est ça le but c'est pour cela que je veux coder ce générateur pour avoir les combinaisons qui répondent au critère donné "18"

My Life Is Delphi
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
9 nov. 2009 à 15:05
eh bien tu reprends ton code et à cet endroit
et tu stockes les résultats :

if r = 18 then
 ListBox1.Add(s1 +'-'+ s2+'-'+ s3+'-'+ s4);


bien sûr, la question est de savoir si tu souhaites avoir toutes les combinaisons possibles ou
une proposition aléatoire à chaque clic.

cantador
0
swadfish Messages postés 16 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 8 février 2010
9 nov. 2009 à 21:43
Ce que je veux c'est une proposition a chaque clic ... mais cela prend beaucoup de temps pour trouver une combinaison ... et sera plus difficile en cas de de grand nombre ou cumul ASCII.
Merci pour vos réponses
a bientôt

My Life Is Delphi
0
Rejoignez-nous