TPCommit question2-2:Debit Maximal

Programmation Avancée

Modérateur : Douin

GANKAMA
Messages : 34
Inscription : 26 oct. 2017 16:51

TPCommit question2-2:Debit Maximal

Message par GANKAMA » 05 déc. 2017 18:01

Bonjour,

J'avance difficilement mais j'avance ...
Je voudrais quelques explications sur le visiteur DebitMaximal sur un groupe de contributeur.Au niveau de la class TestsDesVisiteurs

public void testTroisContributeursUnGroupe(){
try{
GroupeDeContributeurs g = new GroupeDeContributeurs("g");
g.ajouter(new Contributeur("g_a",100));
g.ajouter(new Contributeur("g_b",200));
g.ajouter(new Contributeur("g_c",300));
assertTrue(" Ce composite est valide, revoyez CompositeValide !!!", g.accepter(new CompositeValide()));
assertEquals(" Revoyez DébitMaximal !!!", new Integer(100), g.accepter(new DebitMaximal()));
GroupeDeContributeurs g1 = new GroupeDeContributeurs("g1");
g.ajouter(g1);
assertFalse(" Ce composite n'est pas valide, revoyez CompositeValide !!!", g1.accepter(new CompositeValide()));
}catch(Exception e){
fail("exception inattendue !!! " + e.getMessage());
}
}

Pour moi cette assertion ne peut être vrai:
assertEquals(" Revoyez DébitMaximal !!!", new Integer(100), g.accepter(new DebitMaximal()));
on devrait plutot faire (mettre 600 au lieu de 100):
assertEquals(" Revoyez DébitMaximal !!!", new Integer(600), g.accepter(new DebitMaximal()));


car g.accepter(new DebitMaximal()) doit 600 au lieu de 100.

Voila mon code (il me renvoi bien 600) :

public Integer visite(GroupeDeContributeurs g){
int res = 0;
// a compléter
for(Cotisant c:g.getChildren()){
res=res+c.accepter(this) ;
}
return res ;
}


Je comprend pas pourquoi il ne fonctionne pas.

Cordialement

manuel.lb
Messages : 24
Inscription : 29 oct. 2017 16:59

Re: TPCommit question2-2:Debit Maximal

Message par manuel.lb » 05 déc. 2017 18:26

Bonsoir Gankama,

Le débit maximal est sous-entendu le débit maximal que l'on peut demander à chacun des contributeurs.
C'est-à-dire que chaque contributeur doit être capable de sortir la somme donnée.
Autrement dit, il s'agit du solde minimal de l'ensemble des contributeurs.
Il faut trouver, parmi tous les contributeurs, lequel a son solde le plus bas.

C'est pourquoi il s'agit de 100 dans le test unitaire cité.

Sinon, il suffirait d'appeler la méthode solde() du groupe concerné, ce qui donnerait effectivement 600.

Cordialement

GANKAMA
Messages : 34
Inscription : 26 oct. 2017 16:51

Re: TPCommit question2-2:Debit Maximal

Message par GANKAMA » 05 déc. 2017 19:26

Merci ,je comprends mieux les résultats du test.

GANKAMA
Messages : 34
Inscription : 26 oct. 2017 16:51

Re: TPCommit question2-2:Debit Maximal

Message par GANKAMA » 05 déc. 2017 20:54

Bonsoir ,
Comment fais tu pour garder la premiere valeur qui est 100 dans le test pour le donner comme résultat après comparaison?

Voila mon code mais le resultat renvoyé est le solde du groupe au lieu du debitMax c a d 100.

public class DebitMaximal implements Visiteur<Integer>{

public Integer visite(GroupeDeContributeurs g){
int res = -1;
// a compléter
for(Cotisant c:g.getChildren()){
if(res<=c.accepter(this))
{
res=c.accepter(this);
}

}
return res;
}
Mr Douin parlait de variable d'instance initialisée avec un nombre négatif.Je n'ai pas du tout compris sa démarche.
Merci pour ton aide



Cordialement

GANKAMA
Messages : 34
Inscription : 26 oct. 2017 16:51

Re: TPCommit question2-2:Debit Maximal

Message par GANKAMA » 06 déc. 2017 19:54

Bonsoir,
Personne à une réponse ,je suis bloqué sur cette réponse.

Cordialement

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

Re: TPCommit question2-2:Debit Maximal

Message par Douin » 07 déc. 2017 14:15

Bonjour,

C'est un forum d'entraides, donnez l'envie de vous répondre, soyez plus positif dans vos propos...

http://lmi92.cnam.fr/progAvancee/source ... tp_commit/

Bonne lecture

Répondre

Qui est en ligne ?

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