Exercice d'Algorithmique 1ere S

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
Kokokoizu
Membre Naturel
Messages: 25
Enregistré le: 25 Déc 2011, 15:06

Exercice d'Algorithmique 1ere S

par Kokokoizu » 25 Déc 2011, 15:17

Bonjour,

Voila, j'ai un exercice d'Algorithmique a faire et n'étant pas très doué dans cette dicipline je demande votre aide. Voici l'énoncé :

Entrée
Saisir n(n;);), n ;)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
Fin pour
Fin pour
Afficher S

Quelle est la valeur S affichée par l'algorithme suivant.

Pour répondre a la question, vu que j'avais pas vraiment d'idée, j'ai essayé de faire faire le programme. Pour voir effectivement quelle valeur de S j'allais avoir. Voila mon programme ( qui est faux malheureusement )

Input N
N;)1
S -> 0
For(1;)K;)N)
For(1;)J;)K²)
S -> S+1
End
End
Disp S

j'aimerais savoir ce qui ne va pas dans mon programme. Et si quelqu'un aurait une idée pour la réponse à la question posée.



Stephanelam
Membre Relatif
Messages: 327
Enregistré le: 11 Fév 2010, 17:43

par Stephanelam » 25 Déc 2011, 16:27

Kokokoizu a écrit:Bonjour,

Voila, j'ai un exercice d'Algorithmique a faire et n'étant pas très doué dans cette dicipline je demande votre aide. Voici l'énoncé :

Entrée
Saisir n(n;);), n ;)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
Fin pour
Fin pour
Afficher S

Quelle est la valeur S affichée par l'algorithme suivant.

Pour répondre a la question, vu que j'avais pas vraiment d'idée, j'ai essayé de faire faire le programme. Pour voir effectivement quelle valeur de S j'allais avoir. Voila mon programme ( qui est faux malheureusement )

Input N
N;)1
S -> 0
For(1;)K;)N)
For(1;)J;)K²)
S -> S+1
End
End
Disp S

j'aimerais savoir ce qui ne va pas dans mon programme. Et si quelqu'un aurait une idée pour la réponse à la question posée.


Salut,

Je ne pense pas que faire le programme sans comprendre ce qu'il fait, ni même avoir une idée de ce qu'il va retourner pour voir si le résultat est plus ou moins cohérent, n'est pas une bonne idée.

Commençons plutôt par traduire l'énoncé :

Saisir un entier naturel n supérieur ou égal à 1.
S=0
Pour k de 1 jusqu'à n
Pour J de 1 jusqu'à k²
S=S+1

Tu vois "S=S+1" ce qui te montre que tu as affaire à une somme.
Or de quoi est composée une somme en maths ? D'un début, d'une fin, et d'une expression à sommer.
Alors tu vas te demander qui est quoi parmi les variables du programme de l'énoncé.
Tu vois que n est la variable que l'utilisateur saisit, et que n est une des bornes des variations de k (autrement dit, k varie de 1 à n). Par conséquent, n est la fin de ta somme, et k va être la variable de sommation.

...

Attends y a un truc bizarre dans ton programme, je réfléchis et je reviens. :k2k:

Ouais, c'est bien ça, ton J je vois pas trop ce qu'il fait en fait, parce qu'il est utilisé nulle part dans la programme, sauf si j'ai pas plus compris de toi. En fait, si on déroule, ça donne :

Code: Tout sélectionner
S=0
k=1
J=1
S=0+1=1
k=2
j=2
S=1+1=2


Donc ton J n'intervient nulle part, puisque c'est n qui détermine la fin de la boucle ...
Et c'est encore plus bizarre parce que t'as deux boucles imbriquées (celle avec le k puis celle avec le J).

Bizarre. :k2k:

Kokokoizu
Membre Naturel
Messages: 25
Enregistré le: 25 Déc 2011, 15:06

par Kokokoizu » 25 Déc 2011, 17:10

Stephanelam a écrit:Salut,

Je ne pense pas que faire le programme sans comprendre ce qu'il fait, ni même avoir une idée de ce qu'il va retourner pour voir si le résultat est plus ou moins cohérent, n'est pas une bonne idée.

Commençons plutôt par traduire l'énoncé :

Saisir un entier naturel n supérieur ou égal à 1.
S=0
Pour k de 1 jusqu'à n
Pour J de 1 jusqu'à k²
S=S+1

Tu vois "S=S+1" ce qui te montre que tu as affaire à une somme.
Or de quoi est composée une somme en maths ? D'un début, d'une fin, et d'une expression à sommer.
Alors tu vas te demander qui est quoi parmi les variables du programme de l'énoncé.
Tu vois que n est la variable que l'utilisateur saisit, et que n est une des bornes des variations de k (autrement dit, k varie de 1 à n). Par conséquent, n est la fin de ta somme, et k va être la variable de sommation.

...

Attends y a un truc bizarre dans ton programme, je réfléchis et je reviens. :k2k:

Ouais, c'est bien ça, ton J je vois pas trop ce qu'il fait en fait, parce qu'il est utilisé nulle part dans la programme, sauf si j'ai pas plus compris de toi. En fait, si on déroule, ça donne :

Code: Tout sélectionner
S=0
k=1
J=1
S=0+1=1
k=2
j=2
S=1+1=2


Donc ton J n'intervient nulle part, puisque c'est n qui détermine la fin de la boucle ...
Et c'est encore plus bizarre parce que t'as deux boucles imbriquées (celle avec le k puis celle avec le J).

Bizarre. :k2k:


Effectivement... j'ai reussi a faire marcher mon programme, mais je comprend pas pour autant telle ou telle valeur est affiché.
Pour le reste.. je comprends pas ou J interviens.

Kokokoizu
Membre Naturel
Messages: 25
Enregistré le: 25 Déc 2011, 15:06

par Kokokoizu » 26 Déc 2011, 00:10

Kokokoizu a écrit:Effectivement... j'ai reussi a faire marcher mon programme, mais je comprend pas pour autant telle ou telle valeur est affiché.
Pour le reste.. je comprends pas ou J interviens.


Voila ce que j'ai travaillé :
Si tu entres 1 tu obtiens 1 [:)]

Si tu entres 2, ton k prend d'abord la valeur 1, ainsi J va de 1 à 1² = 1 donc s = 1 à la fin puis k=2 donc j va de 1 à 4 donc on a s+4*1 donc s=5 en sortie
Si tu entres 3, ton k va de 1 à 3
Pour j=1, ton s=1, puis pour j= 2² = 4 et pour j = 3² = 9
on fait s+9*1 donc on obtient s=1+4+9=14

En fait ça additionne tous les carrés parfaits précédents je crois

Genre tu choisis 1, ça te donne 1²

Pour 2 tu auras 2² + 1²

Pour 3 tu auras 3² +2² +1²

Pour 4 tu auras 4² + 3² + 2² + 1²

En faite, le J est là pour nous tromper je crois.

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 26 Déc 2011, 01:31

salut,

En faite, le J est là pour nous tromper je crois.

en fait oui et non.
dans la boucle
Code: Tout sélectionner
Pour J de 1 jusqu'à k²
S=S+1
finPour


S est augmenté de k^2
Donc effectivement, on aurait pu écrire
S = S+k^2 directement

mais on peut également passer par l'utilisation d'une boucle. Ce n'est pas J qui sert à rien, c'est la boucle.

Effectivement, si tu remplaces la boucle par S= S+k^2, tu obtiens
Code: Tout sélectionner
Pour k de 1 jusqu'à n
S = S+k^2
Fin pour


Et donc on fait bien la somme des carrés de 1 à n comme tu l'as remarqué.
la vie est une fête :)

Stephanelam
Membre Relatif
Messages: 327
Enregistré le: 11 Fév 2010, 17:43

par Stephanelam » 26 Déc 2011, 09:41

fatal_error a écrit:salut,


en fait oui et non.
dans la boucle
Code: Tout sélectionner
Pour J de 1 jusqu'à k²
S=S+1
finPour


S est augmenté de k^2
Donc effectivement, on aurait pu écrire
S = S+k^2 directement

mais on peut également passer par l'utilisation d'une boucle. Ce n'est pas J qui sert à rien, c'est la boucle.

Effectivement, si tu remplaces la boucle par S= S+k^2, tu obtiens
Code: Tout sélectionner
Pour k de 1 jusqu'à n
S = S+k^2
Fin pour


Et donc on fait bien la somme des carrés de 1 à n comme tu l'as remarqué.


Sans doute que j'suis bête, mais tu dis que mettre S=S+1 revient au même que de mettre S=S+J ?

 

Retourner vers ✎✎ Lycée

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 33 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite