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

Fermé
juliennesta - 16 nov. 2014 à 17:03
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 17 nov. 2014 à 16:43
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

ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
Modifié par ccm81 le 16/11/2014 à 21:26
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 mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
17 nov. 2014 à 16:43
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 mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
16 nov. 2014 à 18:40
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