Tp6 q3

Programmation Avancée

Modérateur : Douin

Répondre
RENAUD
Messages : 72
Inscription : 21 sept. 2018 19:34

Tp6 q3

Message par RENAUD » 12 nov. 2018 18:11

Bonjour

Je suis rendu à la question 3 sans avoir soumis la question 1 et 2. Je pense avoir compris un peu jusque là vu que les tests junits passent mais bon.

Je comprend le tableau, beaucoup moins la règle d'inférence.
Je suis sur VisiteurInstEvaluation au départ et non VisiteurInstToJava . Je ne sais pas si pour comprendre l'autre serait plus instructif ?
Car comme les 3 questions/package sont nécessaires ça commence à faire des noeuds ;)
Et juste en commençant par Affectation, j'essaye de voir comment je vais passer du tableau au code alors je bricole.
Je me suis dit que déjà là utiliser ecrire() me paraissait évident mais je commence...

J'aimerais savoir si ce tp est le sujet de l'ed de ce soir et du cours de demain.
Je pensais regarder avant les podcasts 2017 relatifs composite_interpreteur_visiteur mais ça va être juste sauf si c'est le sujet ce soir.

CHEGHANNOU
Messages : 42
Inscription : 02 oct. 2018 7:10

Re: Tp6 q3

Message par CHEGHANNOU » 12 nov. 2018 23:26

Bonjour,

Tu as besoin des classes de la question1 pour faire la question2, et tu as besoins des classes de la question1 et 2 pour faire la question3.

RENAUD
Messages : 72
Inscription : 21 sept. 2018 19:34

Re: Tp6 q3

Message par RENAUD » 13 nov. 2018 1:06

Oui ça justement j'avais remarqué.
En fait je ne suis pas sur d'avoir compris le tableau :
"si dans le contexte de la mèmoire M l'expression Expr est évaluée dans l'entier N"

Si j'essaye de comprendre ce premier principe avec testFactoriel dans TestsEvaluationAVerifier
je prend juste: Instruction i1 =new Affectation(x,new Soustraction(x,new Constante(1)));
le contexte est M :
- VisiteurInstruction<Contexte> vi = new VisiteurInstEvaluation(ve,vb);
exp :
- new Soustraction(x,new Constante(1))
là j'ai du mal à lire (surement un bloquage ou une lacune avec le vocabulaire mathématique): ..."Expr est évaluée dans l'entier N"
N est le résultat de exp soit Soustraction(x,new Constante(1)) ?
X :
- Variable x dans le new Affectation du test

et à la sortie de Affectation de VisiteurInstEvaluation est "la mémoire tel que M[X]=N" :
- this.vi.contexte().ecrire(a.v().nom(), a.exp().accepter(this.vi));
le contexte était {fact=1, x=5} et devient alors {fact=1, x=4}
peut on dire que la mémoire et le contexte sont la même chose ici ?
Je demande parce que je ne vois pas à quoi sert pour l'instant vb et vbs par ex.

voilà ce que j'ai essayer de bidouiller pour comprendre et j'espère que c'est à peu près correct si je veux comprendre les formules pour les autres

RENAUD
Messages : 72
Inscription : 21 sept. 2018 19:34

Re: Tp6 q3

Message par RENAUD » 13 nov. 2018 12:21

Je ne sais pas si j'ai bien expliqué mes interrogations.
Je suis au "tant que" mais je voudrais savoir si je ne fais pas n'importe quoi depuis le début de la question 3
public Contexte visite(Affectation a){
this.vi.contexte().ecrire(a.v().nom(), a.exp().accepter(this.vi));
return this.vi.contexte();
}
ça modifie le tabeau map à l'adresse a.v().nom() avec le résultat a.exp()
je n'ai pas bien compris "évaluer dans l'entier N" j'ai compris "retour du résultat de l'expression"

mais sinon j'ai testé ce code avec les autres exemples dans les tests ça a l'air de me donner les bon résultats si j'enleve le "tantque"

J'ai vu qu'évidement on n'avait pas droit au boucle java. Par contre a-t on le droit au if then else ?
Parce que je l'ai utilisé avec Selection:
if (sel.cond().accepter(this.vb).booleanValue()==true){
sel.i1().accepter(this);
return this.vi.contexte();
}
sel.i2().accepter(this);
return this.vi.contexte();

CHEGHANNOU
Messages : 42
Inscription : 02 oct. 2018 7:10

Re: Tp6 q3

Message par CHEGHANNOU » 13 nov. 2018 14:06

public Contexte visite(Affectation a){
this.vi.contexte().ecrire(a.v().nom(), a.exp().accepter(this.vi));
return this.vi.contexte();
}

Ta méthode est bonne et tu as bien entendu le droit au if, else et else if.

RENAUD
Messages : 72
Inscription : 21 sept. 2018 19:34

Re: Tp6 q3

Message par RENAUD » 14 nov. 2018 14:55

J'arrivais au bout quand j'étais à la boucle Pour et j'ai vu les topic 2017
viewtopic.php?p=36838
viewtopic.php?f=40&t=13809

Déjà je n'avais pas un bon résultat par ex pour somme (j'obtenais 9900 au lieu de 4950 ou 10100 au lieu de 5050)
J'ai donc adapté mon code TantQue au départ je faisais un appel récursif à la méthode or déjà un appel récursif peut être accepté mais on peut considérer que c'est une boucle java. Mais de toute façon il manquait quelque chose.
Je faisais un if sur tq.cond() mais j'ai voulu comme la boucle Pour du topic utilisé les méthodes implantés donc j'ai utilisé Selection(ici j'utilise if then et else).
Mais là encore me suis rendu compte que le if then else de mon Selection ne va pas. Je n'arrive plus à gérer soit if-then soit if-then-else dans Selection pour le Tantque, ni comprendre à la final I1 et/ou I2 ou M et M1 et M2 des "formules".

Bref j'aimerais avoir vos avis, vos interprétations sur les formules du tableau.

RENAUD
Messages : 72
Inscription : 21 sept. 2018 19:34

Re: Tp6 q3

Message par RENAUD » 14 nov. 2018 20:22

Je pense que je ne suis pas compréhensible quand je bloque total sur un problème de plus il n'y a pas vraiment de question car je ne sais pas par où commencer.
J'ai repris alors tout le code de VisiteurInstEvaluation et TestsEvaluationAVerifier en décomposant le plus simple possible, pas à pas.
je pense que pour Selection j'étais persuadé que "si alors" correspondait à <M>,Bexp -visite-> vrai et "si alors sinon" à <M>,Bexp -visite-> faux.
j'ai passé une partie de la journée dessus j'ai rajouter des méthodes factoriels, somme,... avec for, while, recursif et tester avec de nouvelles combinaisons possible d'instructions. Tous les résultats semblent suivre...
Me reste "assertion" que je n'ai jamais encore regardé et VisiteurInstToJava

RENAUD
Messages : 72
Inscription : 21 sept. 2018 19:34

Re: Tp6 q3

Message par RENAUD » 15 nov. 2018 16:09

Je ne sais pas pourquoi personne me répond.
Est ce parce que je ne suis pas compréhensible ?
Ou parce qu'il n'y a pas vraiment de question ?

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

Re: Tp6 q3

Message par Douin » 15 nov. 2018 17:09

Bonjour,

Mettez bien vos questions en évidence ...

à bientôt pour les réponses

RENAUD
Messages : 72
Inscription : 21 sept. 2018 19:34

Re: Tp6 q3

Message par RENAUD » 16 nov. 2018 2:51

J'ai l'intention d'ouvrir un post sur la même question.
Serait il possible de supprimer celui-ci ?
Car j'ai trouvé mon erreur qui m'a conduit à ne pas savoir poser le problème. Elle était plus simple que je croyais résultat je ne la voyais pas.
La problématique générale reste la même mais je pense maintenant être en mesure de mieux l'exprimer.

Cordialement

Répondre

Qui est en ligne ?

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