Notion de priorité
Fermé
hunter_civ
Messages postés
9
Date d'inscription
jeudi 8 octobre 2020
Statut
Membre
Dernière intervention
27 octobre 2020
-
19 oct. 2020 à 12:43
hunter_civ Messages postés 9 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 27 octobre 2020 - 19 oct. 2020 à 16:16
hunter_civ Messages postés 9 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 27 octobre 2020 - 19 oct. 2020 à 16:16
A voir également:
- Notion de priorité
- Modifier priorité processus windows 10 permanent ✓ - Forum Autoit / batch
- Paypal utiliser le solde en priorité - Forum Consommation & Internet
- Impossible de modifier la priorité accès refusé ✓ - Forum Windows
- Priorité haute outlook application android ✓ - Forum Hotmail / Outlook.com
- Modifier la priorité d'un processus sous Windows 10 ? - Forum Windows 10
5 réponses
yg_be
Messages postés
23476
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 février 2025
Ambassadeur
1 568
19 oct. 2020 à 13:32
19 oct. 2020 à 13:32
bonjour,
si je vois bien, tu nous montres ce que est retourné, sans nous montrer ce qui es entré.
je pense que ceci t'aidera à progresser: https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
si je vois bien, tu nous montres ce que est retourné, sans nous montrer ce qui es entré.
je pense que ceci t'aidera à progresser: https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
hunter_civ
Messages postés
9
Date d'inscription
jeudi 8 octobre 2020
Statut
Membre
Dernière intervention
27 octobre 2020
19 oct. 2020 à 14:23
19 oct. 2020 à 14:23
oupsi pardon,
voici le main:
La classe InLit permet de renvoyer l'expression ou la valeur d'un entier, la classe Expr est une interface pour évaluer une opération.
Il reste BinOp,
C'est donc la méthode toString que je cherche actuellement à modifier.
Désolé d'avoir mal informé sur mon problème.
voici le main:
Expr plus = new BinOp(Op.PLUS, new IntLit(3), new IntLit(1));
Expr timesPlus = new BinOp(Op.TIMES, plus, new IntLit(2));
System.out.println(timesPlus + " = " + timesPlus.eval());
La classe InLit permet de renvoyer l'expression ou la valeur d'un entier, la classe Expr est une interface pour évaluer une opération.
Il reste BinOp,
public record BinOp(Op op, Expr left, Expr right) implements Expr {
@Override
public String toString(){
return "(" + left.toString() + ")" + op.getToken() + "(" + right + ")";
}
public int eval(){
return switch (op) {
case PLUS -> left.eval() + right.eval();
case TIMES -> left.eval() * right.eval();
};
}
}
C'est donc la méthode toString que je cherche actuellement à modifier.
Désolé d'avoir mal informé sur mon problème.
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
19 oct. 2020 à 15:40
19 oct. 2020 à 15:40
Bonjour,
Tout d'abord, attention : la dernière version LTS (Long Time Support) de Java est Java 11, la prochaine LTS sera Java 17 (fin 2021), les versions intermédiaires introduisent de nouvelles fonctionnalités qui peuvent être testées mais ne sont pas définitives.
En l’occurrence dans ton code cela concerne les switch expressions de Java 13 et les record de Java 14.
La liste des "preview feature" est disponible dans la documentation :
https://docs.oracle.com/javase/specs/
Ceci étant dit, je pense qu'il faudrait que tu retravailles sur ton enum Op, d'une part pour qu'elle porte l'opération que tu as mis dans ton switch (par exemple à l'aide d'une lambda BinaryOperator), d'autre part pour ajouter une valeur de priorité de chaque opération, sans cela tu ne pourras pas savoir quelle opérateur est plus fort qu'un autre.
Quant à la manière de déterminer s'il faut ou non des parenthèses cela devrait se calculer en comparant la valeur de priorité de l'opérateur avec les valeurs de priorité des expressions.
La liste de priorité des opérateurs est disponible dans la documentation : https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
Tout d'abord, attention : la dernière version LTS (Long Time Support) de Java est Java 11, la prochaine LTS sera Java 17 (fin 2021), les versions intermédiaires introduisent de nouvelles fonctionnalités qui peuvent être testées mais ne sont pas définitives.
En l’occurrence dans ton code cela concerne les switch expressions de Java 13 et les record de Java 14.
La liste des "preview feature" est disponible dans la documentation :
https://docs.oracle.com/javase/specs/
Ceci étant dit, je pense qu'il faudrait que tu retravailles sur ton enum Op, d'une part pour qu'elle porte l'opération que tu as mis dans ton switch (par exemple à l'aide d'une lambda BinaryOperator), d'autre part pour ajouter une valeur de priorité de chaque opération, sans cela tu ne pourras pas savoir quelle opérateur est plus fort qu'un autre.
Quant à la manière de déterminer s'il faut ou non des parenthèses cela devrait se calculer en comparant la valeur de priorité de l'opérateur avec les valeurs de priorité des expressions.
La liste de priorité des opérateurs est disponible dans la documentation : https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
hunter_civ
Messages postés
9
Date d'inscription
jeudi 8 octobre 2020
Statut
Membre
Dernière intervention
27 octobre 2020
19 oct. 2020 à 15:50
19 oct. 2020 à 15:50
Je vois ce que tu veux dire mais je n'ai pas le droit de modifier autre chose que la méthode ToString ce qui complique les choses. J'ai pensé à ajouter un switch dans cette méthode mais cela gère les parenthèses que pour des cas particuliers
yg_be
Messages postés
23476
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 février 2025
1 568
19 oct. 2020 à 16:08
19 oct. 2020 à 16:08
le but du DM n'est-il pas d'évaluer l'apprentissage? à quoi cela peut-il bien servir de se faire ainsi aider, dans ce contexte?
cela ne montre-t'-il pas simplement que tu dois continuer à apprendre?
cela ne montre-t'-il pas simplement que tu dois continuer à apprendre?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
hunter_civ
Messages postés
9
Date d'inscription
jeudi 8 octobre 2020
Statut
Membre
Dernière intervention
27 octobre 2020
19 oct. 2020 à 16:16
19 oct. 2020 à 16:16
Bonjour,
Tu as tout à fait raison, mais je t'avouerais que j'ai pas mal cherché cette dernière question et que je n'ai pas d'idée pour la résoudre. C'est pour ç a que je viens chercher de l'aide ici.
Je comprends tout à fait ton point de vue, je devrais réfléchir et me débrouiller par moi-même.
Merci KX pour ta proposition.
Tu as tout à fait raison, mais je t'avouerais que j'ai pas mal cherché cette dernière question et que je n'ai pas d'idée pour la résoudre. C'est pour ç a que je viens chercher de l'aide ici.
Je comprends tout à fait ton point de vue, je devrais réfléchir et me débrouiller par moi-même.
Merci KX pour ta proposition.