QCM
Les Flottants☘
Rappel
Les questions ci-dessous sont là pour vous aider à contrôler ce que vous avez retenu.
Si vous ne répondez pas à toutes les questions sans hésitation, c'est sans doute qu'il faut retravailler les pages précédentes.
Pour chaque question, il faut trouver la (ou les) bonne(s) réponse(s).
QCM 1☘
Quelle est la valeur affichée à l'exécution des instructions suivantes ?
1 2 3 4 |
|
-
0.0
-
0.000001
-
-0.000001
- Aucune car la boucle est infinie :
x
ne prend jamais exactement pour valeur0.0
Réponse
-
0.0
-
0.000001
-
-0.000001
- Aucune car la boucle est infinie :
x
ne prend jamais exactement pour valeur0.0
En effet, 0.5
est représenté de manière exacte en flottant.
QCM 2☘
Quelle est la valeur affichée à l'exécution des instructions suivantes ?
1 2 3 4 |
|
-
0.0
-
0.000001
-
-0.000001
- Aucune car la boucle est infinie :
x
ne prend jamais exactement pour valeur0.0
Réponse
-
0.0
-
0.000001
-
-0.000001
- Aucune car la boucle est infinie :
x
ne prend jamais exactement pour valeur0.0
En effet, 0.1
est représenté de manière approchée en flottant.
QCM 3☘
Un réel x s'écrit (11,11)_2 en base deux.
Quelle est son écriture en base dix ?
- 3,3
- 3,75
- 75,75
- 75,3
Réponse
- 3,3
- 3,75
- 75,75
- 75,3
En effet (11,11)_2 = 1 \times 2^1 + 1 \times 2^0 + \frac{1}{2^1} + \frac{1}{2^2} = 3,75.
QCM 4☘
Voici le code d'une fonction définie en Python :
1 2 3 4 5 6 7 |
|
Que renvoie la console après l'exécution de l'instruction suivante ?
>>> nombre_etapes(1.0)
- 10
- 11
- Une erreur
- Aucune des réponses précédentes n'est correcte
Réponse
- 10
- 11
- Une erreur
- Aucune des réponses précédentes n'est correcte
Le programme va tourner indéfiniment. Les additions se font avec le
représentant de 0.1
en machine, qui n'est pas égal à 0,1 comme on
l'a vu dans ce chapitre.
-
Avec dix termes
0.1
:>>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 0.9999999999999999
-
Avec onze termes
0.1
:>>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 1.0999999999999999
Ainsi, la variable nombre
n'aura jamais la valeur 1.0.
Important
Encore une fois, n'utilisez pas les comparateurs « ==
»
ou « !=
» avec les flottants.
QCM 5☘
On exécute les instructions suivantes :
>>> a = 1 + (-1) + 10**(-40)
>>> b = 10**(-40) + 1 + (-1)
- les valeurs désignées par
a
etb
sont égales. - les valeurs désignées par
a
etb
ne sont pas égales.
Réponse
- les valeurs désignées par
a
etb
sont égales. - les valeurs désignées par
a
etb
ne sont pas égales.
Dans le cas 1, le calcul 1-1+ 10**(-40)
est 0 + 10**(-40) = 10**(-40)
.
Dans le cas 2, le calcul 1/10**(-40) + 1 -1
est 1 -1 = 0
(car 1/10**(-40) + 1
donne 1
avec les problèmes d'arrondis liés à la
représentation des flottants).