Table de vérité en java

Résolu/Fermé
liliRose - 11 déc. 2013 à 15:26
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 11 déc. 2013 à 20:05
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
A voir également:

2 réponses

Utilisateur anonyme
11 déc. 2013 à 15:51
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.
1
merci !

pour le second j'ai fais une table de vérité mais je ne sais pas comment le retranscrire en code java comment faire?
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
11 déc. 2013 à 20:05
Pour ton premier problème
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
else
pour 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);
}
1