[java]où dois je placer le tarif bleu
Résolu
domxaline
-
domxaline -
domxaline -
A voir également:
- [java]où dois je placer le tarif bleu
- Supprimer rond bleu whatsapp - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Placer des points sur une carte - Guide
- Eclipse java - Télécharger - Langages
6 réponses
Bonjour,
Pour prendre en compte ce cas il te manque une information : la date de souscription de l'assuré (et donc son ancienneté), si elle est supérieure à 1 an, tu rentres directement en tarif bleu.
Pour le reste, je pense que tu peux faire des simplifications dans tes if, tu pourrais par exemple t'aider d'une table de Karnaugh.
Remarque : tu devrais utiliser
Pour prendre en compte ce cas il te manque une information : la date de souscription de l'assuré (et donc son ancienneté), si elle est supérieure à 1 an, tu rentres directement en tarif bleu.
Pour le reste, je pense que tu peux faire des simplifications dans tes if, tu pourrais par exemple t'aider d'une table de Karnaugh.
Remarque : tu devrais utiliser
&&pour les booléens,
&a un comportement un peu différent et ne devrait être utilisé que pour les calculs de bits à bits.
Je pars du principe que tu as lu et compris l'article sur les tables de Karnaugh dont j'ai donné le lien tout à l'heure.
Et je pose :
A, la condition sur l'age, avec 0 si <=25 et 1 si >25
B, la date du permis, avec 0 si <2 et 1 si >=2
C, l'ancienneté du contrat, avec 0 si <1 et 1 si >=1
D, le nombre d'accident, avec 0 si =0 et 1 si >0 (ce n'est pas parfait, mais c'est un début)
Le tableau de Karnaugh devrait donner (par exemple)
Avec R = tarif rouge, O = tarif orange, V = tarif vert, B = tarif bleu, N = refusé. Et pour gérer le cas particulier du nombre d'accident, on a R1 = Rouge si 1 accident ou refusé si plus, B1 = Bleu si 1 accident ou refusé si plus, B2 = Bleu si 1 ou 2 accidents, refusé si plus et enfin O1R2 = Orange si 1 accident, Rouge si 2 accidents, refusé si plus.
Dans les simplifications on voir apparaître trois choses. La plus évidente c'est la quatrième colonne sur le tarif bleu, il y a également les lignes 2 et 4 qui sont identiques. Et c'est plus anecdotique, mais on peut également simplifier les deux N de la première ligne.
Cela nous donne (à vérifier bien sûr, je fais ça sans tester)
Remarque : il y a d'autre manières de réfléchir. On peut également partir d'une "couleur" de départ (par exemple "bleu" ou "vert" selon l'ancienneté) et progressivement passé au orange, rouge ou refus dès lors que les conditions sont égrainées peu à peu. C'est une méthode particulièrement utile quand il y a beaucoup de conditions, d'états possibles et des évolutions à prévoir.
Et je pose :
A, la condition sur l'age, avec 0 si <=25 et 1 si >25
B, la date du permis, avec 0 si <2 et 1 si >=2
C, l'ancienneté du contrat, avec 0 si <1 et 1 si >=1
D, le nombre d'accident, avec 0 si =0 et 1 si >0 (ce n'est pas parfait, mais c'est un début)
Le tableau de Karnaugh devrait donner (par exemple)
CD 00 01 11 10
AB
00 R N N B
01 O R1 B1 B
11 V O1R2 B2 B
10 O R1 B1 B
Avec R = tarif rouge, O = tarif orange, V = tarif vert, B = tarif bleu, N = refusé. Et pour gérer le cas particulier du nombre d'accident, on a R1 = Rouge si 1 accident ou refusé si plus, B1 = Bleu si 1 accident ou refusé si plus, B2 = Bleu si 1 ou 2 accidents, refusé si plus et enfin O1R2 = Orange si 1 accident, Rouge si 2 accidents, refusé si plus.
Dans les simplifications on voir apparaître trois choses. La plus évidente c'est la quatrième colonne sur le tarif bleu, il y a également les lignes 2 et 4 qui sont identiques. Et c'est plus anecdotique, mais on peut également simplifier les deux N de la première ligne.
Cela nous donne (à vérifier bien sûr, je fais ça sans tester)
public static String tarif(int age, int permis, int contrat, int accident) { // 4è colonne if (contrat>=1 && accident==0) { // pour encourager la fidélité des clients acceptés, la compagnie propose un contrat de la couleur bleu immédiatement la plus avantageuse s'il est entré dans la maison depuis plus d'un an. return "bleu"; } // 2è et 4 ligne if ((age<25 && permis>=2) || (age>=25 && permis<=2) { // Un conducteur de moins 25 ans et titulaire du permis depuis plus de 2 ans, ou de plus de 25 ans mais titulaire du permis depuis moins de deux ans a le droit au tarif orange s'il n'a jamais provoqué d'accident, au tarif rouge pour un accident, sinon il est refusé. // 1ère colonne if (contrat<1 && accident==0) return "orange"; // 2è et 3è colonne if (accident>1) return "refus"; if (anciennete<1) return "rouge"; // colonne 2 else return "bleu"; // colonne 3 } // 1è ligne if (age<25 && permis<2) { // Un conducteur de moins 25 ans et titulaire du permis depuis moins de 2 ans, se voit attribuer le tarif rouge, si toutefois il n'a jamais été responsable d'accident. Sinon, la compagnie refuse de l'assurer. if (accident==0) return "rouge"; // colonne 1 else return "refus"; // colonne 2 et 3 } // 3è ligne if (age>=25 && permis <=2) // toujours vrai vu qu'on a déjà traité les autres cas { // Un conducteur de plus de 25 ans et titulaire du permis depuis plus de 2 ans bénéficie du tarif vert s'il n'est à l'origine d'aucun accident et du tarif orange pour un accident, du tarif rouge pour deux accidents, et refusé au-delà // colonne 1 if (contrat<1 && accident==0) return "orange"; // colonne 2 et 3 if (accident > 2) return "refus"; else { // colonne 3 if (contrat>=1) return "bleu"; // colonne 2 if (accident==1) return "orange"; else // accident==2 return "rouge"; } } }
Remarque : il y a d'autre manières de réfléchir. On peut également partir d'une "couleur" de départ (par exemple "bleu" ou "vert" selon l'ancienneté) et progressivement passé au orange, rouge ou refus dès lors que les conditions sont égrainées peu à peu. C'est une méthode particulièrement utile quand il y a beaucoup de conditions, d'états possibles et des évolutions à prévoir.
C'est le O en gras qui pose problème ?
A=1, B=0, C=0, D=0, c'est à dire, âge>25, permis<2, contrat<1, accident=0
On est dans ce cas là :
A=1, B=0, C=0, D=0, c'est à dire, âge>25, permis<2, contrat<1, accident=0
On est dans ce cas là :
Un conducteur de moins 25 ans et titulaire du permis depuis plus de 2 ans, ou de plus de 25 ans mais titulaire du permis depuis moins de deux ans a le droit au tarif orange s'il n'a jamais provoqué d'accident, au tarif rouge pour un accident, sinon il est refusé.
CD 00 01 11 10
AB
00 R N N B
01 O R1 B1 B
11 V O1R2 B2 B
10 O R1 B1 B
pouvez vous m'expliquez les N SVP
AB
00 R N N B
01 O R1 B1 B
11 V O1R2 B2 B
10 O R1 B1 B
pouvez vous m'expliquez les N SVP
Pourquoi est-ce que tu ne lis pas ce que je marque dans mes réponses ?
Avec R = tarif rouge, O = tarif orange, V = tarif vert, B = tarif bleu, N = refusé.
Là encore c'est une question à laquelle j'ai déjà répondu, c'était même ma première réponse :
Pour prendre en compte ce cas il te manque une information : la date de souscription de l'assuré (et donc son ancienneté)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question