Livre_silo 30 août 2013 16:32 Page 59
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
59
3 – Expressions : types et opérations
éorème. Pour tous entiers n, m avec m ̸ = 0, il existe un unique couple (q, r) ∈ Z × N tel que
n = qm + r et 0 ⩽ r < |m|.
Cette différence s’exprime lorsque l’on divise par des nombres négatifs.
Si on divise 3 par −2 on obtient ces deux calculs :
3 = −2 × −2 + (−1) = −1 × −2 + 1
En Python, c’est le premier couple (−2, −1) qui est renvoyé car −2 < −1 ⩽ 0, mais en
mathématiques, on considère le second couple (−1, 1) car 0 ⩽ 1 < | − 2| = 2.
La division euclidienne ne pouvant s’effectuer qu’avec un diviseur non nul, il est possible
qu’une expression n’ait pas de valeur car elle reviendrait à diviser par 0. Python l’indique
par un message d’erreur :
In [18]: 1 // 0
ZeroDivisionError: integer division or modulo by zero
Précédence des opérateurs sur les entiers
Si on considère l’expression 2+3*4, il y a deux manières de l’évaluer : (2+3)*4 ou 2+(3*4). Pour
ne pas avoir à demander à l’utilisateur laquelle des deux expressions calculer, les langages
de programmation appliquent automatiquement des règles de placement des parenthèses.
Celles-ci généralisent les règles de priorité des opérations usuelles ; on parle de précédence.
Dans une expression, en l’absence de parenthèses, on calcule en priorité :
• les exponentiations (opérateur **) ;
• puis les multiplications, divisions entières et modulos (opérateurs *, // et %) ;
• et enfin les additions et soustractions (opérateurs + et -).
Ces règles ne résolvent pas toutes les ambiguïtés. Il reste toujours le cas des expressions
telles que 1-3-2, qu’ on peut comprendre comme (1-3)-2 (de valeur -4) ou comme 1-(3-2) (de
valeur 0). Pour la plupart des opérateurs, on choisit toujours la première possibilité (associativité à gauche). Une exception notable est l’exponentiation, qui dans une expression
comme 2**1**3 est calculée à droite d’abord.
Exercice 3.1 Écrire une expression qui permet de déterminer le dernier chiffre de 2 013 2 013 sans afficher
ce nombre en entier.
Exercice 3.2 Écrire des expressions formées uniquement :
• des opérateurs sur les entiers,
• de parenthèses,
• et du chiffre 5 utilisé au maximum cinq fois.
Chercher à obtenir un maximum de valeurs entières positives distinctes. On s’efforcera d’écrire des expressions comportant le moins de parenthèses possibles.
1 Quel est le plus petit entier que l’on ne peut pas obtenir avec une telle expression ?
2 Quel est le plus grand entier que l’on peut obtenir ?
Précédent

- 72/402

Suivant