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

juliennesta -  
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   -
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.




A voir également:

2 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   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
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   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