Besoin d'aide concernant un exercice (do loop until)

juliennesta -  
ThauTheme Messages postés 1564 Statut Membre -
Bonjour, je vous envoi un message concernant un exercice corrigé que je ne comprends pas.

il s'agit de déterminer la somme des n premiers entiers que l'utilisateur donner.

voici le programme entre "" :
" Dim n, somme, i As Integer
Do
Console.Write("entrer un entier positif ou nul")
n = Console.ReadLine()
If n < 0 Then
Console.WriteLine("erreur" & n & "n'est pas un entier positif ou nul")
End If
Loop While n < 0

somme = 0
i = 1
Do
somme = somme + i
i = i + 1
Loop Until i > n
Console.Write("somme des" & n & " premiers entier = " & somme)
Console.ReadLine() "

je ne comprends pas a partir de somme = 0 jusqu'à i = i + 1
car si l'on prend n = 5
somme = somme + i
(donc d'apres le programme 0 = 0 + 1) et ( 1 = 1 + 1 ) je ne vois pas comment avec cela on peut arriver à la somme des n entiers...
merci d'avance pour vos réponses.

2 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonsoir

    Un petit tableau de suivi des variables s'impose

    n=5
    somme = 0
    i = 1

    Do
    somme = somme + i
    i = i + 1
    Loop Until i > n

    somme i i>n
    0 1
    1 2 non
    3 3 non
    6 4 non
    10 5 non
    15 6 oui
    terminé


    Cdlmnt
    1
    1. ThauTheme Messages postés 1564 Statut Membre 160
       
      Bien Vu CCM ! je pensait qu'il fallait rentrer plusieurs entiers par exemple 5, 8 et 10 et la somme devrait être 23. En fait, si on entre 5 la somme va être 1 + 2 + 3 + 4 + 5 = 15. J'avais mal interprété le code et il est vrai que dans ce cas somme = 0 ne pose pas de problème même si cette ligne n'est pas vraiment nécessaire...
      0
  2. ThauTheme Messages postés 1564 Statut Membre 160
     
    Je ne connais absolument pas VB et donc devrais me taire...
    Mais, si je compare à VBA, je vois mal comment en réinitialisant la somme avec somme = 0 on va pouvoir obtenir la somme des n premiers entiers. Pour moi cette ligne doit être supprimée ou se trouver en dessous de la ligne des déclarations. D'ailleurs, cette ligne devrait plutôt être, toujours si on compare avec VBA :

    Dim n As Integer, somme As Integer, i As Integer

    0