public class Arithmetique { public static void main(String[] args) { if (args.length == 0) { System.out.println("Veuillez fournir une expression en notation polonaise inversée."); return; } // Utilisation de l'implémentation FileTableau pour la file File queue = new FileTableau<>(); try { for (String token : args) { switch (token) { case "+": // Addition queue.ajouter(queue.retirer() + queue.retirer()); break; case "-": // Soustraction (attention à l'ordre) int b = queue.retirer(); int a = queue.retirer(); queue.ajouter(a - b); break; case "x": // Multiplication queue.ajouter(queue.retirer() * queue.retirer()); break; case "/": // Division (attention à l'ordre) b = queue.retirer(); a = queue.retirer(); if (b == 0) { throw new ArithmeticException("Division par zéro"); } queue.ajouter(a / b); break; default: // Si ce n'est pas un opérateur, alors c'est un nombre queue.ajouter(Integer.parseInt(token)); break; } } // Le résultat final doit être le seul élément restant dans la file if (queue.taille() == 1) { System.out.println("= " + queue.retirer()); } else { System.out.println("Erreur : Expression incorrecte."); } } catch (Exception e) { System.out.println("Erreur lors de l'évaluation de l'expression : " + e.getMessage()); } } }