Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(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:

VARIABLES
   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  =  1  +   2   +  3   +  4   + .... + n-3 +  n-2 + n-1 + n
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

Pied de page des forums