|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Débuté par issam.belkaid, 30 nov. 2005 17:46 - 3 réponses |
| |
| | | |
|
| |
Posté le 30 novembre 2005 - 17:46 |
voila mon problème: j'ai une table ou j'ai que 3 attributs Id, Valeur, test id: identifiant auto. valeur: soit 1 OU 2 OU 3. test c'est à remplir. travail demandé: _mettre dans "test"=0 quand "valeur"=1 ou 3 (c'est evident) _quand j'ai la valeur 2 il faut voir combien j'ai d'enregistrements et d'affecter pour 40% de ces enrg le test=1 et le RESTE (60%) test=0 Ca c'est deja fait mais il faut le faire d'une maniere aléatoire càd choisir au hasard les enreg ou je vais mettre mes valeurs en respectant les pourcentages. Merci d'avance pour votre aide |
| |
| |
| | | |
|
| | |
| |
Posté le 01 décembre 2005 - 11:13 |
Je t'aiderai avec plaisir, mais je n'ai rien compris à ta demande...
Désolé...
-- Cordialement,
GRIECO Anthony SGTP Laclau agrieco@laclau.fr
"belkaid" <issam.belkaid@gmail.com> a écrit dans le message de news: 438dd0ea$1@news.pcsoft.fr...
voila mon problème: j'ai une table ou j'ai que 3 attributs Id, Valeur, test id: identifiant auto. valeur: soit 1 OU 2 OU 3. test c'est à remplir. travail demandé: _mettre dans "test"=0 quand "valeur"=1 ou 3 (c'est evident) _quand j'ai la valeur 2 il faut voir combien j'ai d'enregistrements et d'affecter pour 40% de ces enrg le test=1 et le RESTE (60%) test=0 Ca c'est deja fait mais il faut le faire d'une maniere aléatoire càd choisir au hasard les enreg ou je vais mettre mes valeurs en respectant les pourcentages. Merci d'avance pour votre aide
|
| |
| |
| | | |
|
| | |
| |
Posté le 01 décembre 2005 - 11:34 |
je vais essayer d'expliquer d'une autre manière. - j'ai une table de 3 champs ("identifiant", "valeur"= soit 1, 2 ou 3, "test") - je veux chercher dans le champs "valeur" la valeur 2 ET mettre dans le champs "test" pour 40% des valeurs 2 que j'ai trouvé la valeur "1" et le reste càd 60% je dois mettre dans le champs "test" la valeur 0.
et ceci doit etre d'une maniere aléatoire. càd quand je choisis mes valeurs 2 l'exemple qui suit j'ai 10 fois VALEUR = 2 donc pour 4 valeurs je vais mettre Test=1 et pour 6 valeurs Test=0 je vais ID valeur test 1 1 X 2 2 1 3 3 X 4 1 X 5 2 0 6 3 X 7 2 0 8 3 X 9 1 X 10 2 1 11 3 X 12 3 X 13 1 X 14 3 X 15 2 0 16 2 1 17 2 0 18 2 0 19 2 1 20 2 0
VOILA mon prog que j'utilise pour le moment si vous m'aider à l'ameliorer je serais reconnaissant. merci d'avance et j'espere que j'etais clair cette fois ci.
//calculer le nombre d'enregistrements ou on a valeur = 2 HLitPremier ( fonc_test,ID) TANTQUE PAS HEnDehors SI fonc_test.VALEUR = 2 ALORS i++ FIN HLitSuivant ( fonc_test ,ID) FIN
j=Arrondi(i*0.4,0)
TANTQUE l<j+1 InitHasard() HLitRecherche(fonc_test,ID,Hasard(1,20)) SI fonc_test.VALEUR = 2 ALORS fonc_test.TEST = 1 l++ HModifie(fonc_test) HLitSuivant (fonc_test ,ID) FIN FIN |
| |
| |
| | | |
|
| | |
| |
Posté le 02 décembre 2005 - 10:44 |
Bonjour,
Si j'ai bien compris le problème, personnelement je travaillerais comme ça. Je ponds ça un peu tel quel, sans y avoir passé des heures...sorry s'il y a des lacune
1/Juste pour une question d'optimisation, j'effectuerai la première opération de rechrche avec une requête : soit dans l'éditeur de requête soit manuellement :
req_txt est chaine = "Select ID from fonctest WHERE ID=2" marequete est data source
hexecutereqetesql(marequete,marequête)
//On calcule le nombre de 1 et de 0 qui'l y aura au total nb_40 is int = int(hnbrec(marequete) / 40 *100) //nb rec correspondants à 40% nb_60 is int = hnbrec(marequete) - nb_40
//On construit 2 tableau qui contiendront les ID tab_40 est un tableau de nb_40 entiers tab_60 est un tableau de nb_60 entiers
hlitpremier(marequete) tanque que pas hendehors() i++ if i <= nb_40 then tab_40[i] = marequete.ID else tab_60[i-nb_40] = marequete.ID end
//Je parcours chacun de ces tableau aléatoirement jusqu'à ce tous les ID //contenus ont été utilisés :
i=0 boucle
si i = nb_40 alors //i est incrémenté chaque fois que l'on a mis un ID à jour break //si il est égal à nb_40 ca veut dire qu'on les a tous fait ! fin
ind = [Hasard(1,nb_40)] si <> tab_40[ind] <> 0 alors hlitrecherche(fonc_test,ID,tab_40[ind]) si htrouve() alors fonc_test.test = 1 fin tab_40[ind] = 0 i++ fin fin
même chose pour le tableau tab_60....
Tiens nous au courant si cela marche ou pas (j'ai peut-être fait une erreu qq part ?)
Ou contacte moi en privé si tu exploiter cette piste un peu mieux...
Fred fred-76-nospam@hotmail.com (enlevé le '-no-spam) |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|