Table de vérité en java
Résolu
liliRose
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour à tous mes ami(e)s
voila débutante en java je rencontre deux problèmes mes codes :
le premier :
je demande à l'utilisateur d'entrer deux entier positifs et s'il me donne des entiers négatifs je veux que mon programme s'arrete. J'ai pensé à utiliser break mais il y a une erreur à la compilation. Pareil pour system.out.exit() quelqu'un saurait-il m'aider? :)
voici mon code :
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a, b;
System.out.println("Entrez deux valeurs");
a=sc.nextInt();
b=sc.nextInt();
if((a<0)||(b<0))
System.out.println("Erreur les deux nombres doivent être positif");
System.out.exit();
double hypothenus = Math.sqrt(a*a + b*b);
double perimetre = a+b+hypothenus;
double aire = (b*a)/2.0;
System.out.println("Le perimètre vaut : "+perimetre);
System.out.println("L'aire vaut : "+aire);
Mon deuxieme probleme :
On s'interesse à l'opérateur boolean maj ternaire (c'est à dire 3 arguments ) maj(a,b,c) est vrai si et seulement si au moins deux de ces arguments sont vraies :
on a commencé a faire ceci :
static boolean maj(boolean a, boolean b, boolean c){
maj=false
if(a){
if(b){maj=true}
else {maj=c}
}
else if(b) {maj=c}
mais je comprend pas le raisonnement et donc suis incapable de continuer. Si vous aviez la gentillesse de prendre quelques minutes je vous en remercie :).
Bisous
voila débutante en java je rencontre deux problèmes mes codes :
le premier :
je demande à l'utilisateur d'entrer deux entier positifs et s'il me donne des entiers négatifs je veux que mon programme s'arrete. J'ai pensé à utiliser break mais il y a une erreur à la compilation. Pareil pour system.out.exit() quelqu'un saurait-il m'aider? :)
voici mon code :
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a, b;
System.out.println("Entrez deux valeurs");
a=sc.nextInt();
b=sc.nextInt();
if((a<0)||(b<0))
System.out.println("Erreur les deux nombres doivent être positif");
System.out.exit();
double hypothenus = Math.sqrt(a*a + b*b);
double perimetre = a+b+hypothenus;
double aire = (b*a)/2.0;
System.out.println("Le perimètre vaut : "+perimetre);
System.out.println("L'aire vaut : "+aire);
Mon deuxieme probleme :
On s'interesse à l'opérateur boolean maj ternaire (c'est à dire 3 arguments ) maj(a,b,c) est vrai si et seulement si au moins deux de ces arguments sont vraies :
on a commencé a faire ceci :
static boolean maj(boolean a, boolean b, boolean c){
maj=false
if(a){
if(b){maj=true}
else {maj=c}
}
else if(b) {maj=c}
mais je comprend pas le raisonnement et donc suis incapable de continuer. Si vous aviez la gentillesse de prendre quelques minutes je vous en remercie :).
Bisous
A voir également:
- Table de vérité en java
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Table ascii - Guide
- Table des matières word - Guide
- Eclipse java - Télécharger - Langages
2 réponses
Bonjour
Pour ton premier problème, je crois que ça marcherait mieux avec des { } pour entourer les instructions conditionnées par le if.
Pour le second, le raisonnement pour créer ce programme est tordu. Mais tu peux facilement faire la vérification en remplissant la table de vérité (avec 3 variables, il n'y a que 8 cas) et vérifier que le programme donne bien le bon résultat dans tous les cas.
Pour ton premier problème, je crois que ça marcherait mieux avec des { } pour entourer les instructions conditionnées par le if.
Pour le second, le raisonnement pour créer ce programme est tordu. Mais tu peux facilement faire la vérification en remplissant la table de vérité (avec 3 variables, il n'y a que 8 cas) et vérifier que le programme donne bien le bon résultat dans tous les cas.
Pour ton premier problème
Tu veux sans doute faire un
Pour ton deuxième problème tu pourrais compter le nombre de valeurs à true.
Sinon en réfléchissant en table de vérité, on peut en déduire une expression simple :
System.out.exit();n'existe pas.
Tu veux sans doute faire un
System.exit(status);cependant je te déconseilles de l'utiliser. Si tu veux signaler un problème alors tu créés une Exception, sinon tu fais juste un
return;pour finir la méthode main. Ou encore mieux, tu fais un
elsepour mettre les instructions de calcul dans le cas qui va bien. Mais ne fais pas de
exit.
Pour ton deuxième problème tu pourrais compter le nombre de valeurs à true.
public static boolean maj(boolean a, boolean b, boolean c) { int n = 0; if (a) n++; if (b) n++; if (c) n++; return n>=2; }
Sinon en réfléchissant en table de vérité, on peut en déduire une expression simple :
public static boolean maj(boolean a, boolean b, boolean c) { return (a && b) || (a && c) || (b && c); }
pour le second j'ai fais une table de vérité mais je ne sais pas comment le retranscrire en code java comment faire?