TP6 Question 1

Programmation Avancée

Modérateur : Douin

karsenty
Messages : 17
Inscription : 09 oct. 2017 22:30

TP6 Question 1

Message par karsenty » 19 nov. 2017 18:46

Bonjour,

tout allait bien dans le début du TP, lorsque en faisant les TestsAVerifier, j'ai toujours l'erreur "StackOverflowError, appel récursif sans fin de {i=3, j=5} (i + 2) + i ??? ". Et ceci pour les 4 opérateurs alors que Infixe et Postfixe nickel.

J'ai beau regarder les classes Additions par exemple, et je ne vois rien qui me choque. Alors je dois forcément passer à côté de quelque chose.
Mais encore une fois, je tourne en rond.

Merci pour votre aide.

karsenty
Messages : 17
Inscription : 09 oct. 2017 22:30

Re: TP6 Question 1

Message par karsenty » 19 nov. 2017 22:37

en fait, c'est "expr.accepter(ve).intValue()" qui me pose pb , mais pourquoi ????? Je sèche.

Douin
Messages : 201
Inscription : 18 mars 2009 15:46

Re: TP6 Question 1

Message par Douin » 20 nov. 2017 12:12

bonjour

Attention à l'évaluation des expressions, déposez votre code sur ce fil de discussions pour en discuter...

à suivre

karsenty
Messages : 17
Inscription : 09 oct. 2017 22:30

Re: TP6 Question 1

Message par karsenty » 20 nov. 2017 20:40

Je pense que cela provient dans ma classe VisiteurEvaluation de la methode :

public Integer visite(Variable v) {
System.out.println("Eval : " + Integer.parseInt(v.nom())); // .accepter(this)));
return Integer.parseInt(v.nom());
}


Mais je tourne toujours en rond.

slash
Messages : 15
Inscription : 04 nov. 2017 2:45

Re: TP6 Question 1

Message par slash » 21 nov. 2017 1:52

Bonsoir,

Fais un tour dans la classe Variable, tu verras que le constructeur attends un contexte.
Une fois dans le contexte concret, tu trouveras la bonne méthode ;)

karsenty
Messages : 17
Inscription : 09 oct. 2017 22:30

Re: TP6 Question 1

Message par karsenty » 21 nov. 2017 14:48

Ok, alors, je dois m'y prendre mal, parce que ça passe pas.

Ce que je fais :
dans la classe "variable", je vois :
public Variable(Contexte c, String nom) {
this(c, nom, 0);
}

donc je me cale dessus, d'ou dans la classe "Evaluation" :
public Integer visite(Contexte c,Variable v) {
return c.lire(v.nom()) ;
}

Donc la je commence à désespérer parce que je vois pas ce que je dois trouver, ça ne me saute pas aux yeux.

Douin
Messages : 201
Inscription : 18 mars 2009 15:46

Re: TP6 Question 1

Message par Douin » 21 nov. 2017 18:04

Bonsoir,

La question revient à Que vaut x ?

int expr = x + 3

La valeur pour x en mémoire + 3

public Integer visite(Variable v) {
return c.lire(v.nom()) ;
}

Le contexte est une variable d'instance

Bonne fin de question

pthellier
Messages : 24
Inscription : 10 oct. 2017 13:52

Re: TP6 Question 1

Message par pthellier » 21 nov. 2017 18:38

Pour la variable, il faut lire la valeur en mémoire dans le contexte c.lire(v.nom())

karsenty
Messages : 17
Inscription : 09 oct. 2017 22:30

Re: TP6 Question 1

Message par karsenty » 21 nov. 2017 21:56

ok, donc j'en étais pas si loin, ;-) Merci.

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité