Bonjour,
dans AST_SOM_F
je ne comprends pas l'élément d'instruction à implémenter (n> 0) { som := som + i;
L'instruction entre parenthèse (n>0) indique t elle une condition à réaliser ?
De plus apparemment il manque une accolade fermante dans le sujet ?
Pour rappel instruction AST_SOM_F complète :
som := 0;
for (i = 0; i < n; i++) { (n> 0) {
som := som + i;
}
TP9 question 1 AST_SOM_F
Modérateur : Douin
-
- Messages : 38
- Inscription : 07 oct. 2017 20:27
Re: TP9 question 1 AST_SOM_F
Je me pose la même question.
Je n'ai pas tenu compte du n>0, mais avec mon code et mon test je n'obtiens pas le bon résultat (test perso).
Comme si som était incrémenté une fois que i = n...
Je n'ai pas tenu compte du n>0, mais avec mon code et mon test je n'obtiens pas le bon résultat (test perso).
Comme si som était incrémenté une fois que i = n...
Re: TP9 question 1 AST_SOM_F
Bonjour,
Pour ma part je n'ai pas "traité" la cas n<=0 puisqu'il n'est pas réalisable dans boucle Pour (la condition i<n avec i incrémenté et commençant par 0) et ça passe apparemment sans problème. Je pense que l'instruction (n>0) est simplement mise à titre indicatif (c'est un commentaire), ou alors une erreur de copier-coller ? En tout cas l'algorithme fonctionne bien, ton problème doit venir d'ailleurs. Revérifie peut-être que tu as bien les bonnes affectations de n et somme dans ta première séquence ?
Pour ma part je n'ai pas "traité" la cas n<=0 puisqu'il n'est pas réalisable dans boucle Pour (la condition i<n avec i incrémenté et commençant par 0) et ça passe apparemment sans problème. Je pense que l'instruction (n>0) est simplement mise à titre indicatif (c'est un commentaire), ou alors une erreur de copier-coller ? En tout cas l'algorithme fonctionne bien, ton problème doit venir d'ailleurs. Revérifie peut-être que tu as bien les bonnes affectations de n et somme dans ta première séquence ?
-
- Messages : 38
- Inscription : 07 oct. 2017 20:27
Re: TP9 question 1 AST_SOM_F
Eh bien si erreur il y a je ne la vois pas.
C'est pas gênant du tout puisque j'ai juste à faire i < n-1 mais bon...
Voilà la boucle Pour sans retrancher un à n, ce qui me donne pas le résultat attendu, peut-être vois-tu l'erreur ! (j'ai bien affecté 0 à som!)
Pour p = new Pour(
new Affectation(i, new Constante(0)),
new Inf(i, new Constante(m.lire("n"))),
new Affectation(i, new Addition(i, new Constante(1))),
new Affectation(som, new Addition(som, i))
);
Merci en tout cas !
C'est pas gênant du tout puisque j'ai juste à faire i < n-1 mais bon...
Voilà la boucle Pour sans retrancher un à n, ce qui me donne pas le résultat attendu, peut-être vois-tu l'erreur ! (j'ai bien affecté 0 à som!)
Pour p = new Pour(
new Affectation(i, new Constante(0)),
new Inf(i, new Constante(m.lire("n"))),
new Affectation(i, new Addition(i, new Constante(1))),
new Affectation(som, new Addition(som, i))
);
Merci en tout cas !
Re: TP9 question 1 AST_SOM_F
Bonjour,
J'ai déclaré toutes les variables et constantes dans partie déclarative de la classe, avant l'invocation du constructeur.
Il faut commencer par une séquence qui inclut l'affectation som=0 initiale, puis la boucle pour.
déclaration des champs de classe:
instruction:
J'espère que ça te sera utile.
J'ai déclaré toutes les variables et constantes dans partie déclarative de la classe, avant l'invocation du constructeur.
Il faut commencer par une séquence qui inclut l'affectation som=0 initiale, puis la boucle pour.
déclaration des champs de classe:
Code : Tout sélectionner
private Contexte m = new Memoire();
private Variable som = new Variable(m, "som");
private Variable n = new Variable(m, "n");
private Variable i = new Variable(m, "i");
private Constante Zero = new Constante(0);
private Constante Un = new Constante(1);
instruction:
Code : Tout sélectionner
ast = new Sequence(new Affectation(som, Zero),
new Pour(new Affectation(i, Zero),
new Inf(i, this.n),
new Affectation(som, new Addition(som, i)),
new Affectation(i, new Addition(i, Un))));
-
- Messages : 38
- Inscription : 07 oct. 2017 20:27
Re: TP9 question 1 AST_SOM_F
Oui au premier coup d'oeil.
J'ai inversé l'instruction dans la boucle et l'incrémentation de i ! (ce qui semble pourtant plus logique, mais c'est comme ça !)
Après j'ai déjà tout validé mais c'est plus propre sans bidouille !
Merci
J'ai inversé l'instruction dans la boucle et l'incrémentation de i ! (ce qui semble pourtant plus logique, mais c'est comme ça !)
Après j'ai déjà tout validé mais c'est plus propre sans bidouille !
Merci