tlsosiris
Messages postés24Date d'inscriptiondimanche 18 avril 2004StatutMembreDernière intervention14 mai 2004
-
24 avril 2004 à 18:31
cs_rene38
Messages postés1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 2013
-
6 mai 2004 à 02:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_rene38
Messages postés1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 201311 6 mai 2004 à 02:34
gandalfkhorne >
"While Art=1" .... "Art ne sera jamais égal à 1"
donc le Sub ne fait rien ! (d'ailleurs, il faut soit While .... Wend
soit Do While .... Loop)
Si on veut une boucle infinie sans GoTo, pourquoi ne pas mettre :
Do 'annonce de la ligne de répétition
DoEvents
......
End With
Loop
lucky2222
Messages postés92Date d'inscriptiondimanche 14 juillet 2002StatutMembreDernière intervention 2 octobre 2006 26 avril 2004 à 09:03
salut a tous! le code est ce qu'il est, les commentaires sont instructifs!
alors justement, j'en profite, car moi aussi, je suis debutant:
pourquoi utiliser le GOTO avec les gousses d'ail??
quelle est la grande differance entre Goto est le While dans ces deux exemples?
ok le Goto, fera une boucle a l'infini et pour arreter le prossessuce, pas facile! mais dans le deuxieme exemple, je crois comprendre que l'infinie y est aussi?
est ce une question de rapidité d'execssion?
merci a tous?
gandalfkhorne
Messages postés70Date d'inscriptiondimanche 11 janvier 2004StatutMembreDernière intervention 1 octobre 2004 25 avril 2004 à 22:52
Jsuis pas daccord que le GOTO est un cauchemard car tu peux t'en servir très correctement dans certains cas.
Dim Tp As Integer, Lft As Integer 'declaration des variables
Dim form As form ' encore une variable
Randomize 'histoire que ce soit vraiment aleatoire
While Art=1 'annoce de la ligne de repetition
DoEvents
Lft = 1 + Int(Rnd * 15000) 'conception de la formule de math
Tp = 1 + Int(Rnd * 12000) 'encore de la formule
Set form = New osiris 'copie de la form1 nommé osiris
With form
.Show 'apparition de la form
.top = Tp 'designation de la position aleatoire( grace a la formule top)
.left = Lft ' pareille
End With
Loop
Sinon : - Evite de faire des boucles sur des déclarations, évite d'utiliser des mots déjà connus de la procédure comme Top ou Left, de plus la déclaration Dim Top, Left ne servent pas trop sauf si tu les mets en Integer (<32000) et que tu utilise un petit Option Explicit, de plus Art ne sera jamais égal à 1 sauf si tu le décide et pour cela il t'aurait fallut un DoEvents qui permet à l'utilisateur de voir ce que ton programme glande durant une execution à l'infini.
tlsosiris
Messages postés24Date d'inscriptiondimanche 18 avril 2004StatutMembreDernière intervention14 mai 2004 25 avril 2004 à 20:28
heuuuuuuu je suis un debutant donc j'ai pas encore analyser la fonction while
mais bon je vais modif la source avec while plus tard
Inekman
Messages postés291Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention30 juin 2006 25 avril 2004 à 13:10
L'instruction goto est le cauchemard de mon prof d'info, il en parle avec une croix argentée et une gousse d'ail :-)
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 24 avril 2004 à 19:08
Tu aurais au moins pu éviter d'utiliser le goto : c'est vraiment la pire instruction qu'on puisse utiliser, surtout dans un code long !
Bon là cà va encore, c'est pas trop long, mais une boucle While infini aurait bien plus fait l'affaire !
DarK Sidious
juki_webmaster
Messages postés947Date d'inscriptionmercredi 19 novembre 2003StatutMembreDernière intervention 5 avril 20083 24 avril 2004 à 18:44
Ps : explique svp ce qu'est :
Set form = New osiris
.
juki_webmaster
Messages postés947Date d'inscriptionmercredi 19 novembre 2003StatutMembreDernière intervention 5 avril 20083 24 avril 2004 à 18:43
T'auraisdu expliquer plus le code, enfin il est assez bien explixer.
Moi je trouve que ce genre de code sont bon lorsqu'ont debute comme moi, mais trop de code comme celui-la font rabaisser le niveau.
Moi personnelement j'aime bien ton code :)
Bonne continuation.
tlsosiris
Messages postés24Date d'inscriptiondimanche 18 avril 2004StatutMembreDernière intervention14 mai 2004 24 avril 2004 à 18:31
6 mai 2004 à 02:34
"While Art=1" .... "Art ne sera jamais égal à 1"
donc le Sub ne fait rien ! (d'ailleurs, il faut soit While .... Wend
soit Do While .... Loop)
Si on veut une boucle infinie sans GoTo, pourquoi ne pas mettre :
Do 'annonce de la ligne de répétition
DoEvents
......
End With
Loop
26 avril 2004 à 09:03
alors justement, j'en profite, car moi aussi, je suis debutant:
pourquoi utiliser le GOTO avec les gousses d'ail??
quelle est la grande differance entre Goto est le While dans ces deux exemples?
ok le Goto, fera une boucle a l'infini et pour arreter le prossessuce, pas facile! mais dans le deuxieme exemple, je crois comprendre que l'infinie y est aussi?
est ce une question de rapidité d'execssion?
merci a tous?
25 avril 2004 à 22:52
Dim Tp As Integer, Lft As Integer 'declaration des variables
Dim form As form ' encore une variable
Randomize 'histoire que ce soit vraiment aleatoire
While Art=1 'annoce de la ligne de repetition
DoEvents
Lft = 1 + Int(Rnd * 15000) 'conception de la formule de math
Tp = 1 + Int(Rnd * 12000) 'encore de la formule
Set form = New osiris 'copie de la form1 nommé osiris
With form
.Show 'apparition de la form
.top = Tp 'designation de la position aleatoire( grace a la formule top)
.left = Lft ' pareille
End With
Loop
Sinon : - Evite de faire des boucles sur des déclarations, évite d'utiliser des mots déjà connus de la procédure comme Top ou Left, de plus la déclaration Dim Top, Left ne servent pas trop sauf si tu les mets en Integer (<32000) et que tu utilise un petit Option Explicit, de plus Art ne sera jamais égal à 1 sauf si tu le décide et pour cela il t'aurait fallut un DoEvents qui permet à l'utilisateur de voir ce que ton programme glande durant une execution à l'infini.
25 avril 2004 à 20:28
mais bon je vais modif la source avec while plus tard
25 avril 2004 à 13:10
24 avril 2004 à 19:08
Bon là cà va encore, c'est pas trop long, mais une boucle While infini aurait bien plus fait l'affaire !
DarK Sidious
24 avril 2004 à 18:44
Set form = New osiris
.
24 avril 2004 à 18:43
Moi je trouve que ce genre de code sont bon lorsqu'ont debute comme moi, mais trop de code comme celui-la font rabaisser le niveau.
Moi personnelement j'aime bien ton code :)
Bonne continuation.
24 avril 2004 à 18:31