Livre_silo 30 août 2013 16:32 Page 51
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
51
2 – Représentation des nombres
Exercice 2.55 On considère le programme Python suivant :
x = 1.0
y = x + 1.0
while y - x == 1.0:
x = x * 2.0
y = x + 1.0
1 Si l’on calculait sur des nombres décimaux exacts, que se passerait-il lors de l’exécution de ce programme ?
2 Écrire ce programme dans un éditeur Python et l’exécuter. Que constate-t-on ?
3 Modifier le programme de façon à déterminer au bout de combien d’exécutions du corps de la boucle
il s’arrête, ainsi que la valeur de x à la fin de cette exécution.
4 Comment est représentée cette dernière valeur de x ? Et celle de y ?
5 Proposer une explication de ce comportement.
Exercice 2.56 On considère le programme Python suivant :
a = 0.0
for n in range(10):
a = a + 0.1
print(repr(a))
1 Si l’on calculait sur des nombres décimaux exacts, que se passerait-il lors de l’exécution de ce programme ?
2 Écrire ce programme et l’exécuter. Que constate-t-on ?
3 Vérifier que la représentation binaire de 0, 1 est
0011111110111001100110011001100110011001100110011001100110011010.
Quel nombre décimal cette représentation désigne-t-elle en réalité ?
4 En déduire les représentations binaires des différentes valeurs prises par a au cours de l’exécution de ce
programme et les nombres décimaux que cette représentation désigne en réalité.
5 Expliquer l’affichage obtenu.
Exercice 2.57 * La représentation binaire en virgule flottante sur 64 bits permet-elle de représenter :
1 tous les entiers relatifs représentables sur 64 bits ?
2 plus de nombres distincts que la représentation des entiers relatifs sur 64 bits ? ou moins ?
3 des nombres décimaux qui ne soient pas entiers ?
4 des nombres rationnels qui ne soient pas décimaux ?
5 des nombres réels qui ne soient pas rationnels ?
Exercice 2.58 * Donner des exemples de nombres :
1 entiers ;
2 décimaux non entiers ;
qui ne sont pas représentables exactement selon la norme IEEE 754.
Dans les deux cas, on proposera des nombres impossibles à représenter exactement :
1 pour des raisons de précision ;
2 parce qu’ils sont trop grands, trop petits ou trop proches de 0.
Exercice 2.59 * L’ensemble des nombres à virgule flottante sur 64 bits forme-t-il un groupe pour l’addition ? Un anneau pour l’addition et la multiplication ? Un corps ?
On rappelle que les opérations sont faites comme si la précision était infinie, puis que le résultat obtenu
est arrondi au plus proche nombre à virgule flottante représentable.
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
51
2 – Représentation des nombres
Exercice 2.55 On considère le programme Python suivant :
x = 1.0
y = x + 1.0
while y - x == 1.0:
x = x * 2.0
y = x + 1.0
1 Si l’on calculait sur des nombres décimaux exacts, que se passerait-il lors de l’exécution de ce programme ?
2 Écrire ce programme dans un éditeur Python et l’exécuter. Que constate-t-on ?
3 Modifier le programme de façon à déterminer au bout de combien d’exécutions du corps de la boucle
il s’arrête, ainsi que la valeur de x à la fin de cette exécution.
4 Comment est représentée cette dernière valeur de x ? Et celle de y ?
5 Proposer une explication de ce comportement.
Exercice 2.56 On considère le programme Python suivant :
a = 0.0
for n in range(10):
a = a + 0.1
print(repr(a))
1 Si l’on calculait sur des nombres décimaux exacts, que se passerait-il lors de l’exécution de ce programme ?
2 Écrire ce programme et l’exécuter. Que constate-t-on ?
3 Vérifier que la représentation binaire de 0, 1 est
0011111110111001100110011001100110011001100110011001100110011010.
Quel nombre décimal cette représentation désigne-t-elle en réalité ?
4 En déduire les représentations binaires des différentes valeurs prises par a au cours de l’exécution de ce
programme et les nombres décimaux que cette représentation désigne en réalité.
5 Expliquer l’affichage obtenu.
Exercice 2.57 * La représentation binaire en virgule flottante sur 64 bits permet-elle de représenter :
1 tous les entiers relatifs représentables sur 64 bits ?
2 plus de nombres distincts que la représentation des entiers relatifs sur 64 bits ? ou moins ?
3 des nombres décimaux qui ne soient pas entiers ?
4 des nombres rationnels qui ne soient pas décimaux ?
5 des nombres réels qui ne soient pas rationnels ?
Exercice 2.58 * Donner des exemples de nombres :
1 entiers ;
2 décimaux non entiers ;
qui ne sont pas représentables exactement selon la norme IEEE 754.
Dans les deux cas, on proposera des nombres impossibles à représenter exactement :
1 pour des raisons de précision ;
2 parce qu’ils sont trop grands, trop petits ou trop proches de 0.
Exercice 2.59 * L’ensemble des nombres à virgule flottante sur 64 bits forme-t-il un groupe pour l’addition ? Un anneau pour l’addition et la multiplication ? Un corps ?
On rappelle que les opérations sont faites comme si la précision était infinie, puis que le résultat obtenu
est arrondi au plus proche nombre à virgule flottante représentable.
