Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
Discussion fermée
#1 07-03-2019 16:48:07
- Nelcar
- Membre
- Inscription : 05-03-2019
- Messages : 159
comprendre et programmer un algorithme
Bonjour,
Voilà l'exercice que je dois faire
Soit n un entier naturel non nul. On pose S=1+2+.....+n
1) calculer les sommes 1+2;1+2+3et 1+2+3+4, puis calculer S lorsque n=5
j'ai fait :
1+2+3+4+5=15
2) on considère l'algorithme ci-dessous
S (fléche vers à gauche)0
pour i variant de 1 à n
(trait droit)S (fléche vers la gauche)S+i
Fin pour
là je suis perdue j'ai fait S=S+n
3)Programmer une fonction d'argument n qui retourne la valeur de la variable S de l'algorithme précédent. En déduire la somme des 1000 premiers entiers naturels non nuls.
chez ma mamy c'est python3.2.5
j'ai fait :
def entier(n):
S=0
for i in range(1nn+1)
S=S+i
return(S)
print(entier(1000))
Merci de vos réponses
Hors ligne
#2 07-03-2019 17:18:46
- freddy
- Membre chevronné
- Lieu : Paris
- Inscription : 27-03-2009
- Messages : 7 457
Re : comprendre et programmer un algorithme
Salut,
ça m'a l'air bon mais ici, c'est yoshi le prince de python, il va venir te dire !
Dans tous les cas, la somme que tu cherches est égale à $\frac{n(n+1)}{2}$. Tu peux te servir de cette formule pour te contrôler.
De la considération des obstacles vient l’échec, des moyens, la réussite.
Hors ligne
#3 07-03-2019 18:20:32
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 991
Re : comprendre et programmer un algorithme
Re,
Oui, c'est presque bon...
Pourquoi presque ? Parce que chez ta mamy, si tu as tapé ce que tu as écrit, alors il y a trois fautes sur cette ligne :
for i in range(1nn+1)
* il manque les : à la fin de la ligne
* la syntaxe de range est : range(debut,fin [pas])
- où est la virgule chez toi ?
- Pourquoi nn ?
Probablement la réponse est faute de frappe : les touches n et , sont côte à côte sur le clavier. Il y a donc gros à prier que le premier n de n est la virgule qui manque...
Moyennant quoi, rien à dire...
print (entier(1000) te donnera : 500500.
Contrôle : $S_{1000}=\dfrac{1000(1000+1)}{2}=500 \times 1001 = 500500$
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#4 07-03-2019 21:05:05
- Nelcar
- Membre
- Inscription : 05-03-2019
- Messages : 159
Re : comprendre et programmer un algorithme
Bonsoir,
oui je me suis trompée dans la touche, c'est bien for in range:(n,n+1):
Merci encore YOSHI
Par contre pour la deuxième question je mets quoi ?
merci
Hors ligne
#5 07-03-2019 21:43:12
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 991
Re : comprendre et programmer un algorithme
Re,
2) on considère l'algorithme ci-dessous
S (fléche vers à gauche)0
pour i variant de 1 à n
(trait droit)S (fléche vers la gauche)S+i
Fin pour
Je ne vois pas de question ou alors ton énoncé n'est pas complet...
Pour le fun la même chose avec AlgoBox:
S EST_DU_TYPE NOMBRE
i EST_DU_TYPE NOMBRE
n EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
S PREND_LA_VALEUR 0
LIRE n
POUR i ALLANT_DE 1 A n
DEBUT_POUR
S PREND_LA_VALEUR S+i
FIN_POUR
AFFICHER "S = "
AFFICHER S
FIN_ALGORITHME
Je lance :
On me demande la valeur de n, je donne 1000 et
j'obtiens :
***Algorithme lancé***
S = 500500
***Algorithme terminé***
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#6 07-03-2019 22:22:58
- Nelcar
- Membre
- Inscription : 05-03-2019
- Messages : 159
Re : comprendre et programmer un algorithme
Bonsoir,
il était noté :
exprimer en fonction de n, la valeur que contient la variable S en fin d'algorithme.
Merci
Hors ligne
#7 07-03-2019 23:06:33
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 991
Re : comprendre et programmer un algorithme
Re,
OK ! Si tu ne l'avais vu, tu ne peux pas le deviner...
Sais-tu ce qu'est une suite arithmétique ?
Supposons que oui
Alors on pose $U_1=1$ et $U_{n+1}=U_n +1$
S est la somme des termes de cette suite entre 1 et n :
[tex]S= U_1+U_2+U_3+U_4+....+U_n[/tex]
$u_2=2,\, u_3=3,\,u_4=4\,\cdots\,u_n=n$
c'est précisément la somme des termes d'une suite arithmétique de premier terme $u_1=1$ et de raison r=1.
Si tu as vu ça en cours, alors tu sais que [tex]S= n\times\dfrac{u_n+u_1}{2}= n\times\dfrac{n+1}{2}=\dfrac{n(n+1)}{2}[/tex]
Si tu n'as pas encore vu les suites ou que tu es en 2nde, voilà une autre démo.
On écrit 2 fois la somme une fois dans l'ordre des termes croissant, une fois décroissant et tu additionnes les 2 lignes :
Voilà ce que ça donne :
S = n + n-1 + n-2 + n-3 + .... + 4 + 3 + 2 + 1
-------------------------------------------------------------------
2S = n+1 + n+1 + n+1 + n+1 + .... + n+1 + n+1 + n+1 + n+1
Et tu constates que verticalement tu obtiens n+1 à chaque fois et il y a n colonnes
Donc la somme de n fois n+1 c'est la définition d'une multiplication n(n+1) et ce produit c'est 2S, donc
[tex]S=\dfrac{n(n+1)}{2}[/tex] c'est ta réponse...
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#8 08-03-2019 10:23:35
- Nelcar
- Membre
- Inscription : 05-03-2019
- Messages : 159
Re : comprendre et programmer un algorithme
Merci Yoshi,
j'ai très bien compris, tu m'as très bien expliqué, c'est SUPER
MERCI MERCI
Hors ligne
Pages : 1
Discussion fermée