INVERSER ORDRE DES MOTS DANS UNE PHRASE... C'EST BIEN MARRANT :]

Messages postés
2674
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
- - Dernière réponse : Almandric
Messages postés
31
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
12 août 2003
- 29 mai 2002 à 23:10
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/3470-inverser-ordre-des-mots-dans-une-phrase-c-est-bien-marrant

Almandric
Messages postés
31
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
12 août 2003
-
Eh Willi, facile de dire y'a plus simple mais je vois pas de code!!!
DeAtHCrAsH
Messages postés
2674
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
-
Tu as raison Almandirc...le test sur la valeur de i est inutile ... ce qu'il y a c'est que j'ai fait du copier coller d'un autre programme que j'ai fait et pour qui i = int(rnd*a) - 2 et que donc il fallait verifier la valeur de i ... puis j'ai pas vu cette erreur en collant le bout de code....

Pour ce qui est de la boucle For i = 0 to len(text1.text) + 200 c'est pour comme tu le dis pour retrouver tous les mots ... SI tu n'as pas retrouver tous les mots, c'est que les mot qui se sont "perdu" etaient en double dans ta phrase ....
Et le bug de ce code c'est que si il a deja vu un mot, il ne le reprend pas ....

Clair qu'il serait mieux de prendre les valeurs successifs de j et de les tester .. ca serais plus sure ...

Sinon a part ca merci pour tes remaques ....

A++
DeAtH_-_CrAsH
cs_Willi
Messages postés
2377
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
16 -
Bien mais y a plus simple !

-------------------------------
http://www.perfectvb2k2.fr.st
Almandric
Messages postés
31
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
12 août 2003
-
Et bien en voila des remarques :
* Le test 'If i <UBound(MyTab) Then' est inutile car i int(Rnd * j) et la fonction Rnd te renvoie un chiffre compris entre 0 et 1 donc Rnd * j tend vers j. Et ton j correspond au nombre de dimensions de ton tableau ('j = UBound(MyTab)') donc quoi qu'il arrive i sera toujours <= UBound(MyTab).
* Ensuite je me suis demandé pourquoi cette boucle : 'For a = 0 To Len(Text1.Text) + 200'. J'ai pas trouvé de bonne raison si ce n'est d'obtenir un nombre relativement important afin de faire assez de Rnd pour reprendre tous les mots. Le problème c'est que c'est carrément pas stable et t'es pas sur à 100% de retrouver tous tes mots à la fin. J'ai eu le problème. Je l'admets c'est pas de bol... Mais je pense que tu devrais stocker tous les randoms que tu fais dans un tableau et losque tu calcul un nouveau random fait une recherche pour savoir si tu l'as déjà tiré.

A+
DeAtHCrAsH
Messages postés
2674
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
-
Pas encore de commentaire ??? Bizarre .... Doivent etre malade les rois de la critique :]