Salutations à tous,
Je coince sur un exercice assez compliqué et comme les algorithmes et moi ça fait deux, je viens demander votre aide. Voici le sujet :
Quelle est la valeur S affichée par l'algorithme suivant:
Entrée
Saisir n(n est un entier naturel, n>ou égal à 1
Initialisation
S prend la valeur 0
Traitement
Pour k de 1 jusqu'à n
Pour j de 1 jusqu'à k
S prend la valeur S + 1
FinPour
Finpour
Sortie
Afficher S
-
De ce que j'ai traduit, on saisit un nombre entier naturel n supérieur ou égal à 0 donc S=0. Ensuite, k de 1 jusqu'à n ; j de 1 jusqu'à k² -> S=S+1. En fait j'ai ma petite idée de comment procéder : afficher les valeurs de j et de S pour k de 1 jusqu'à n. Par exemple : pour k=1, si j=1 alors S=0+1=1 ; pour k=2, si j=1 alors S=1+1=2 et si j=2 alors S=2+1=3 etc... jusqu'à k=n. C'est là que je coince.
Voilà, j'aimerais bien un peu d'aide car j'ai l'impression d'être à côté de la plaque.
Merci.
entrer par exemple n = 4 et exécuter l'algorithme "à la main" :
toutes les opérations dans l'ordre où elle sont exécutées (il n'y a pas de "SI" dans cet algorithme)
et quand on écrit S prend la valeur S+1, c'est la valeur actuelle de S quelle qu'elle soit à ce moment là qui est augmentée de 1
S = 0
k = 1
j = 1 : S = 0 + 1 = 1
k = 2
j = 1 : S = 1 + 1 = 2
j = 2 : S = 2 + 1 = 3
k = 3
j = 1 : S = 3 + 1 = 4
j = 2 : S = 4 + 1 = 5
j = 3 : S = 5 + 1 = 6
k = 4
j = 1 : S = 6 + 1 = 7
j = 2 : S = 7 + 1 = 8
j = 3 : S = 8 + 1 = 9
j = 4 : S = 9 + 1 = 10
fini : S contient la valeur 10, le résultat de cet algorithme.
dans la boucle "pour j" combien de fois a-t-on ajouté 1 ?
(la réponse dépend de k !!)
et donc quand on fait la somme de ça pour k de 1 à n cela revient à additionner quels nombres ?
dans la boucle pour j on ajoute k fois 1, c'est à dire on ajoute k
donc en tout on aura calculé
1
+2
+3
+4
...
+n
toutes les valeurs de k de 1 à n
ici dans l'exemple "à la main" on a bien additionné 1 + 2 + 3 + 4 et donc S = 10
Ah d'accord. Mais c'est un exemple avec n=4 or je ne sais pas comment répondre à la question principale avec ça. Mon souci avec cet exercice c'est que je ne sais pas comment rédiger la façon d'obtenir S.
c'est comme pour l'exemple mais tu raisonnes en symbolique en partant de la boucle la plus intrene :
cette boucle :
pour j de 1 à k
ajouter 1 (à S)
est une façon tordue de dire simplement
ajouter k (à S)
k fois 1 c'est k, arithmétique élémentaire (k*1 = k)
donc ton algo est équivallent à
pour k de 1 à n
ajouter k (à S)
ce qui fait bien
à partir de S = 0
ajouter
1 + 2 + ... + n
donc finalement cet algorithme calcule la somme des n premiers entiers pour toute valeur de n qu'on lui fournit.
tu rédiges
si tu en mets juste quelques bouts "copiés collés", autant dire "l'algorithme calcule évidemment la somme des n premiers entiers" et rien d'autre
On sait que S prend la valeur S+1 à tout moment.
On ajoute k (à S) pour k de 1 à n.
Alors à partir de S=0, on ajoute 1+2+...+n.
Donc finalement cet algorithme calcule la somme des n premiers entiers pour toute valeur de n qu'on lui fournit.
il te manque le bout qui dit que la boucle "pour j" revient à ajouter k à S.
et la phrase "On sait que S prend la valeur S+1 à tout moment" ne veut rien dire.
Lorsqu'on doit ajouter 1 (à S) pour j de 1 à k, cela revient à dire qu'il faut ajouter k (à S)
On ajoute donc k (à S) pour k de 1 à n.
Alors à partir de S=0, on ajoute 1+2+...+n.
Donc finalement cet algorithme calcule la somme des n premiers entiers pour toute valeur de n qu'on lui fournit.
Donc, à partir de S=0, la valeur de S est égale à 1+2+...+n.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :