Bonjour, cliquez-ici pour vous inscrire et participer au forum.
  • Login:



+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

boucle tant que

  1. 369

    Date d'inscription
    mars 2007
    Messages
    1 987

    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

    -----

     


    • Publicité



  2. Jack

    Date d'inscription
    avril 2003
    Localisation
    Metz
    Messages
    16 127

    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. bzh_nicolas

    Date d'inscription
    avril 2010
    Messages
    2 318

    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. whoami

    Date d'inscription
    janvier 2009
    Messages
    3 545

    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.
    À part la mort et les impôts, tout n'est qu'incertitude.
     

  5. 369

    Date d'inscription
    mars 2007
    Messages
    1 987

    Re : boucle tant que

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


    • Publicité



  6. Jack

    Date d'inscription
    avril 2003
    Localisation
    Metz
    Messages
    16 127

    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+
     

  7. 369

    Date d'inscription
    mars 2007
    Messages
    1 987

    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
     

  8. bzh_nicolas

    Date d'inscription
    avril 2010
    Messages
    2 318

    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.
     

  9. polo974

    Date d'inscription
    février 2007
    Messages
    8 366

    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...).
    Le mieux est l'ennemi du bien, et c'est bien mieux comme ça...
     


    • Publicité







Sur le même thème :





 

Discussions similaires

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