[java]où dois je placer le tarif bleu
Résolu
domxaline
-
domxaline -
domxaline -
Bonjour,
voilà mon exercice:
mon question est que je dois faire pour tarif bleu? veuillez m'aidez svp
EDIT: Précision du langage dans la coloration syntaxique.
voilà mon exercice:
- 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.
- 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é.
- 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à
- De plus, 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.
mon question est que je dois faire pour tarif bleu? veuillez m'aidez svp
import java.util.Scanner;
public class Testing1
{
public static void main(String[] args)
{
char reponse='O';
do
{
System.out.println("Entrez l'age:");
Scanner valeur=new Scanner(System.in);
int age=valeur.nextInt();
System.out.println("Entrez l'année permis:");
int permis=valeur.nextInt();
System.out.println("Entrez nb d'accident:");
int acci=valeur.nextInt();
if(age<=25 & permis<=2 & acci==0)
{ System.out.println("Tarif rouge"); }
else if((age<25 & permis>2 & acci==0)||(age>25 & permis <2 & acci==0))
{ System.out.println("tarif orange"); }
else if((age<25 & permis>2 & acci==1)||(age>25 & permis <2 & acci==1))
{System.out.println("tarif rouge");}
if(age>25 & permis >2 & acci==0)
{ System.out.println("tarif vert"); }
else if(age>25 & permis >2 & acci==1)
{ System.out.println("Tarif Orange"); }
else if(age>25 & permis >2 & acci==2)
{System.out.println("tarif rouge");}
else if(age>25 & permis >2 & acci>2)
{ System.out.println("imcompatible pour être assuré"); }
System.out.println("");
System.out.println("Voulez vous reessaye, O/N?");
Scanner sc=new Scanner(System.in);
reponse=sc.nextLine().charAt(0);
}while(reponse=='O');
System.out.println("Fin du programme,Au revoir.");
}
}
EDIT: Précision du langage dans la coloration syntaxique.
A voir également:
- [java]où dois je placer le tarif bleu
- Supprimer rond bleu whatsapp - Guide
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - 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