-
06/01/2011 - 22h58 369
boucle tant que
bonsoir,
j'aimerai que vous m'aidiez pour cette modification de boucle
je veux modifier la boucle pour en une boucle tant que Code HTML: Variable
i : entier
Debut
Instruction1
Pour i = 1 jusqu’à 10 faire
Instruction2
Instruction3
FinPour
Fin voici mon programmme en visual basic avec la boucle tant que Code HTML: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim i As Integer
Dim a As Integer
Dim b As Integer
Dim S As Integer
Dim t As Integer
Dim c As Integer
a = InputBox("a")
b = InputBox("b")
S = a + b
While i > 0
While i < 10
t = S + 1
c = t + 2
End While
End While
MsgBox("valeurs de c est " & c)
End Sub
End Class
malheureusement il ne marche pas et j'aimerais bien savoir pourquoi
exemple: a=2 b=2 je trouve c =7 par la boucle pour
mais dans la boucle tant que je trouve c =0
merci de votre aide
-
Poursuivez votre recherche
-
07/01/2011 - 00h01 Jack
Re : boucle tant que
Code: While i > 0
While i < 10
t = S + 1
c = t + 2
End While
End While il n'est pas sain de ne pas initialiser les variables, en l'occurrence que vaut i dans le 1er while?
Ensuite, dans tes boucles, rien ne vient modifier i, donc je ne vois pas comment tu vas en sortir.
A+
-
07/01/2011 - 09h24 bzh_nicolas
Re : boucle tant que
Totalement d'accord avec Jack.
J'ajouterai aussi que tu n'es pas du tout dans la bonne direction pour traduire ta boucle for en boucle tant que.
Là tu as imbriqué 2 boucles. Essaie de prendre un papier et un crayon pour voir ce qui va se passer à chaque tour de boucle (dans ce cas là, pas grand chose car tu n'initialise pas i donc tu ne rentres pas dans la première boucle).
-
07/01/2011 - 11h51 whoami
Re : boucle tant que
Bonjour,  Envoyé par bzh_nicolas Totalement d'accord avec Jack.
J'ajouterai aussi que tu n'es pas du tout dans la bonne direction pour traduire ta boucle for en boucle tant que.
Là tu as imbriqué 2 boucles. Essaie de prendre un papier et un crayon pour voir ce qui va se passer à chaque tour de boucle (dans ce cas là, pas grand chose car tu n'initialise pas i donc tu ne rentres pas dans la première boucle). En fait, il va y entrer ou pas, de manière aléatoire. 
Papier + crayon est un moyen que je conseille toujours, c'est le meilleur moyen d'apprendre et d'éviter d'écrire n'importe qui. À part la mort et les impôts, tout n'est qu'incertitude. -
07/01/2011 - 18h07 369
Re : boucle tant que
j'ai essayé avec papier crayon puis sur visual basic mais j'ai pas réussi
-
07/01/2011 - 18h19 Jack
Re : boucle tant que
 Envoyé par 369 j'ai essayé avec papier crayon puis sur visual basic mais j'ai pas réussi pas réussi à quoi faire? A transformer une boucle POUR en une boucle TANTQUE?
dans ce cas, c'est que tu n'as pas compris comment fonctionne une boucle pour: Code: POUR i DE 1 A N
// <instructions>
FPOUR se traduit en: Code: i <- 1
TANTQUE i <= N
// <instructions>
i <- i+1
FTQUE Après, que ce soit du VB, du C, du java ou autres langages, c'est du pareil au même.
A+
-
07/01/2011 - 22h01 369
Re : boucle tant que
je n'ai pas compris ta boucle tant que Code: i <- 1
TANTQUE i <= N
// <instructions>
i <- i+1
FTQUE pourquoi i<-1 et pourquoi i<-i+1
y a t il une facon particulière de faire (qui marche à tout les coup) avec les boucle pour et tant que .
de même pour changer l'une en l'autre
-
07/01/2011 - 22h26 bzh_nicolas
Re : boucle tant que
La première ligne i<-1 est l'initialisation de la variable avant d'entrer dans la boucle, il faut TOUJOURS initialiser une variable sinon tu ne sais pas ce qu'il y a dedans.
L'incrémentation n'intervient qu'une fois que tu es dans la boucle.
La méthode de passage de l'une à l'autre, Jack te l'a donné.
Pour avoir une boucle qui "fonctionne", il faut surtout comprendre ce que fait une boucle et les conditions d'arrêt pour éviter de te retrouver dans une boucle infinie.
Il n'y a pas de solution miracle, il faut comprendre ce que tu fais.
-
08/01/2011 - 07h39 polo974
Re : boucle tant que
 Envoyé par bzh_nicolas ..., il faut TOUJOURS initialiser une variable sinon tu ne sais pas ce qu'il y a dedans.
... C'est un truc qui vient très vite quand on utilise des pointeurs... 
Le contrôle de boucle for en basic cache des choses importantes qui ne sont pas faite automatiquement dans le contrôle de boucle while.
dans un contrôle for (à la mode basic ou C), il y a 3 parties:
initialisation: c'est fait avant d'entrer dans la boucle
test de continuation: c'est fait à chaque boucle (suivant le langage au début ou à la fin, mais c'est presque un détail), c'est ce test qu'on trouve dans un while.
opération systématique: ajouter 1 (ou autre chose) à la variable testée pour faire bouger les choses (suivant le langage, on peut faire autre chose...)
ex:
for i=1 to 10 step 3
i=1 : initialisation
to 10 : test de continuation (on test i, c'est implicite)
step 3 : valeur ajoutée à i à chaque boucle, si c'est 1, ça peut être implicite en basic
donc si les parties implicites du for ne sont pas retranscrite de façon explicite dans un while, ça ne pourra pas marcher (pour les parties explicite aussi, mais c'est plus évident...).
Le mieux est l'ennemi du bien, et c'est bien mieux comme ça... | | |