Download Programmation Syllabus d`exercices
Transcript
64 – chaque élément est un string ; – chaque élément représente soit un entier, soit un opérateur ; – les éléments se trouvent dans la liste suivant l’ordre de la notation polonaise (en d’autres termes, nous supposons que la liste est une expression valide). Voici la liste des opérations possibles avec leurs représentations dans la liste : – "+" : somme – "-" : différence – "*" : produit – "/" : division entière – "%" : reste de la division Expression : 12 + 3 - 4 * 2 Notation polonaise correspondante : - + 12 3 * 4 2 Représentation sous forme de liste : ["-", "+", "12", "3", "*", "4", "2"] Résultat: 7 F IGURE 15.2 – Exemple : notation polonaise, représentation de l’expression sous forme d’une liste. Vous pouvez supposer que la liste est correctement structurée, c’est-à-dire que l’ordre et le nombre d’éléments sont corrects. Votre fonction devra toutefois signaler par le biais d’une exception l’éventualité d’une division par zéro. Essayez d’utiliser le moins de if-else possible. Vous ne pouvez pas utiliser la fonction eval() de Python. Vous pouvez définir d’autres fonctions et écrire du code en plus pour simplifier le code de la fonction evaluate(). Voici encore quelques exemples de liste expression : Expression: 1 + 1 + 1 + 1 + 1 Représentation sous forme d’une liste: ["+","+","+","+", "1", "1", "1", "1", "1"] Résultat: 5 Expression: ((5 - 3) + (1 % 2)) * 8 Représentation sous forme d’une liste: ["*", "+", "-", "5", "3", "%", "1", "2", "8"] Résultat: 24 F IGURE 15.3 – Exemples. Ex. 15.11. * (Examen Janvier 2013) Le problème de partition consiste à découper un ensemble d’entiers L en deux partitions L1 et L2 tel que la somme des éléments du premier ensemble soit égale à la somme des éléments du second.