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

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013 - 29 mai 2002 à 12:04
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
29 mai 2002 à 23:10
Eh Willi, facile de dire y'a plus simple mais je vois pas de code!!!
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
29 mai 2002 à 21:14
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 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
29 mai 2002 à 18:26
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
29 mai 2002 à 14:42
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 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
29 mai 2002 à 12:04
Pas encore de commentaire ??? Bizarre .... Doivent etre malade les rois de la critique :]
Rejoignez-nous