Somme des n premiers entiers.

Signaler
Messages postés
3
Date d'inscription
mercredi 17 mars 2010
Statut
Membre
Dernière intervention
17 mars 2010
-
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
-
Bonjour,
j'ai un exercice en VBA à faire mais je ne comprends pas du tout comment faire :s
Pouvez-vous m'aider ?

voici l'exo :

"Écrivez un programme qui calcule la somme des entiers compris entre 1 et n (inclus) en utilisant la formule n(n+1)/2."

Ce que je ne comprends pas c'est qu'à mon avis, il faut utiliser une boucle ( vu qu'on ne connait pas le nombre d'itérations)
mais nous ne les avons pas encore appris ...
Comment faire ?
Voici le début de mon programme :

Option Explicit
'Cette macro calcule la somme des entiers compris entre 1 et n (inclus).
Sub sommeNombEntiers()
Dim n As Integer


End Sub


merci d'avance.

9 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
recursivité, si, car apparemement notre ami n'a pas appris les boucles...

pour blinder le truc, fais les deux versions ^^

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
les boucles, non, pas forcément (ce serait le plus efficace)
je pense qu'ici on cherche a TE faire travailler la recursivité

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
3
Date d'inscription
mercredi 17 mars 2010
Statut
Membre
Dernière intervention
17 mars 2010

Merci de votre réponse
mais ce que je ne comprend pas c'est que l'on ne peut pas répéter n fois l'instruction ! Vu qu'on ne connait pas n ...

Nous avons fait un exercice où n était déterminer et où il fallait le changer et transformer le programme en fonction de n ..
Ca j'ai compris mais je n'arrive pas à l'appliquer à cet exo .. .
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
Comment cela "on ne connait pas n"

ben, si, c'est un parametre de la fonction

si on donne n = 5
tu calcule la somme des 5 premiers entiers

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
149
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2013
4
Bonjour, soit je n'ai pas compris soit ..., il n'y a pas de recursivité à appliquer, c'est une formule mathematiques (1+2+3+4+...+(n-1)+n = n*(n-1)/2), après pour codifier ce n'est pas compliqué...

http://www.les-suites.fr/somme-des-n-premiers-entiers.htm
Messages postés
149
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2013
4
En supposant que 'n' est saisie dans la cellule A1 et que l'on mette le resultat dans la cellule A2 :

Option Explicit
'Cette macro calcule la somme des entiers compris entre 1 et n (inclus).
Sub sommeNombEntiers()
Dim n As Integer

n = Cells(1, 1)
Cells(1, 2) = n * (n + 1) / 2
End Sub

Voilà...
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
je connaissais pas cette formule, bien qu'ecrite dans le premier post.


du coup, j'avoue ne pas comprendre l'interet de l'exercice et encore moins la raison qui peu pousser quelqu'un a demander de l'aide, la solution etant dans l'énoncé..

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
3
Date d'inscription
mercredi 17 mars 2010
Statut
Membre
Dernière intervention
17 mars 2010

je sais que la formule est dans l'énoncé.
mais le problème, c'est que ,ayant des cours algo & programmation en C, envoyant cet exo je pensais demander à l'tulisateur un entier n et faire une boucle For (pour)
Mais nous n'avons pas appris ca en VBA
et je ne sais pas ce qu'est la récursivité et comment on l'utilise ...
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
je ne te suis vraiment pas, la...

somme des 5 premiers entiers :

1+2+3+4+5 = 15

en prenant n = 5 et en utilisant :

n * (n + 1) / 2

on a bien

5 * (5 + 1) / 2
5 * 6 / 2
5 * 3
15

je ne vois donc pas ce que vient faire une boucle là dedans...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp