Opération sur tableaux

Opération sur tableaux - Delphi/Pascal - Programmation

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
Reply

Marsh Posté le 03-09-2003 à 18:54:03   

Reply

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


Message édité par antp le 04-09-2003 à 00:30:35

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

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. :)

Reply

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 :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 03-09-2003 à 19:23:45    

Question idiote. :d
 
Ou dois je déclarer mon tableau pour qu'il soit accéssible pour tout le code lié à la form ?

Reply

Marsh Posté le 03-09-2003 à 19:29:55    

au hasard... dans la déclaraction de la Form ? :D
dans la section private de la déclaration de TNomDeTaForm


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 03-09-2003 à 19:48:42    

En effet c'est ce que j'ai fait entre temps.
 
Maintenant ça fonctionne. :jap:
 
Me reste plus qu'a virer les valeurs inutiles et ce sera mieux.
Merci

Reply

Marsh Posté le 03-09-2003 à 21:25:27    

Par contre j'ai un autre problème. :d
 
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 ?

Reply

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


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

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)];


Message édité par amsterdam le 03-09-2003 à 21:33:27
Reply

Marsh Posté le 03-09-2003 à 21:32:16   

Reply

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 :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

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. :d

Reply

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


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 04-09-2003 à 00:39:18    

Si il n'y avait que ça qui merdait. :lol:
 
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

Reply

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...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 04-09-2003 à 01:01:49    

Ok.  :jap:  
 
Bon là je commence à  :sleep: .
Je reviendrait te persécuter demaing. :d
 
 :hello:  et merci.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed