boucle tant que
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

boucle tant que



  1. #1
    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

    -----

  2. #2
    Jack
    Modérateur

    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+

  3. #3
    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).

  4. #4
    whoami

    Re : boucle tant que

    Bonjour,
    Citation Envoyé par bzh_nicolas Voir le message
    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.

  5. A voir en vidéo sur Futura
  6. #5
    369

    Re : boucle tant que

    j'ai essayé avec papier crayon puis sur visual basic mais j'ai pas réussi

  7. #6
    Jack
    Modérateur

    Re : boucle tant que

    Citation Envoyé par 369 Voir le message
    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+

  8. #7
    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

  9. #8
    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.

  10. #9
    polo974

    Re : boucle tant que

    Citation Envoyé par bzh_nicolas Voir le message
    ..., 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...).
    Jusqu'ici tout va bien...

Discussions similaires

  1. Dimension de R en tant que Q-ev?
    Par invitee7ddda3d dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 12/09/2010, 12h14
  2. Probleme boucle for ou boucle do...while imbriquées
    Par Pilou81 dans le forum Électronique
    Réponses: 8
    Dernier message: 09/06/2010, 10h32
  3. Boucle ouverte boucle fermée
    Par invitedaf7b98f dans le forum Physique
    Réponses: 5
    Dernier message: 10/01/2010, 15h13
  4. Tant d incértitudes
    Par perplexe dans le forum Archives
    Réponses: 4
    Dernier message: 20/07/2007, 12h19