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

Fermé
Signaler
-
Messages postés
1419
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
16 janvier 2022
-
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

Messages postés
10197
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
14 janvier 2022
2 275
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
Messages postés
1419
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
16 janvier 2022
156
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
Messages postés
1419
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
16 janvier 2022
156
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