Opération sur tableaux - Delphi/Pascal - Programmation
Marsh Posté le 03-09-2003 à 18:56:53
tableau[Random(max)];
où max = nombre d'éléments du tableau
tableau[Random(max)+1];
si ton tableau commence à 1 au lieu de 0
tableau[Trunc(Random(max))];
si jamais Random renvoie un double
Marsh Posté le 03-09-2003 à 19:12:09
J'avait essayé ça mais ça ne fonctionnait pas.
En fin de compte le problème se situe ailleur car le contenu de mon tableau n'est pas vu dans la procédure liée à mon deuxième bouton alors qu'il l'est dans l'autre.
Je retourne donc à mon ouvrage.
Merci.
Marsh Posté le 03-09-2003 à 19:21:51
amsterdam a écrit : le contenu de mon tableau n'est pas vu dans la procédure liée à mon deuxième bouton alors qu'il l'est dans l'autre. |
heu... si tu le dis
Marsh Posté le 03-09-2003 à 19:23:45
Question idiote.
Ou dois je déclarer mon tableau pour qu'il soit accéssible pour tout le code lié à la form ?
Marsh Posté le 03-09-2003 à 19:29:55
au hasard... dans la déclaraction de la Form ?
dans la section private de la déclaration de TNomDeTaForm
Marsh Posté le 03-09-2003 à 19:48:42
En effet c'est ce que j'ai fait entre temps.
Maintenant ça fonctionne.
Me reste plus qu'a virer les valeurs inutiles et ce sera mieux.
Merci
Marsh Posté le 03-09-2003 à 21:25:27
Par contre j'ai un autre problème.
Je rempli un tableau en fonction des cases qui sont cochées.
Esuite je tire un chiffre au hasard dans ce tableau.
Sauf que lorsque je décoche une des cases, mon tableau se met bien à jour mais pas le tirage aléatoire continue comme avant sans tenir compte de la modif..
Ce ne serait pas une histoire d'appel par valeur/référence ?
Marsh Posté le 03-09-2003 à 21:28:02
je sais pas, tu passes ton tableau en paramètre ? si oui, bah faudrait le passer en var je suppose
Marsh Posté le 03-09-2003 à 21:32:16
En fait je vient de m'apercevoir que ça ne le fait que pour la case cochée représentant la plus grande valeur.
Voici la déclaration de mon tableau dans la partie publique de ma form.
tableau3 : array[1..9] of integer;
et son appel:
nb1:= tableau3[random(9)];
Marsh Posté le 03-09-2003 à 21:45:24
sachant que Random renvoie un nombre entre 0 et le nombre spécifié, 0 inclus et le nombre exclus, trouve ton erreur
Marsh Posté le 04-09-2003 à 00:27:58
Par ex si je coche la case 9 le prog prend bien en compte l'action mais pas quand je la décoche.
En fait je vient de vérifier et il n'y a qu'un de mes deux tableau qui se met à jour.
Donc suite....plus tard.
Marsh Posté le 04-09-2003 à 00:31:11
Ouais enfin ton random foire de toute façon, vu que ton tableau commence à 1 tu dois ajouter 1 au Random obtenu
Marsh Posté le 04-09-2003 à 00:39:18
Si il n'y avait que ça qui merdait.
J'ai fait le test sur mon tableau1 qui n'est censé contenir que des valeurs inférieures à 10 et bien il arrive à me sortir une valeur de 9264848.
Alors que les autres tirages donnent un chiffre entre 1 et 9.
C'esr ti pas bo ça
Marsh Posté le 04-09-2003 à 00:59:15
si tu fous des valeurs hors des indices de ton tableau, ça te met n'importe quoi dans la RAM et parfois tu retrouve des bouts là où t'avais tes variables...
Marsh Posté le 04-09-2003 à 01:01:49
Ok.
Bon là je commence à .
Je reviendrait te persécuter demaing.
et merci.
Marsh Posté le 03-09-2003 à 18:54:03
Salut.
Voilà je cherche à récupérer une valeur de manière aléatoire dans un tableau de INT.
Je pensait faire un truc du genre
nb1:= random(tableau[?]);
Mais je ne vois pas par quoi remplacer le "?"
Merci d'avance.
Message édité par amsterdam le 03-09-2003 à 21:25:55