Nom : PTSI 29 septembre 2016

publicité
Nom :
PTSI
D EVOIR N°1
29 septembre 2016
Tous les résultats doivent être justifiés.
Pour les programmes en Python, l’indentation doit clairement apparaître.
Tout document interdit, y compris la calculatrice.
Le barème est donné à titre indicatif : il pourra être soumis à quelques fluctuations.
3,5 points
Exercice 1 : Changements de bases
1. Calculer de deux façons différentes l’écriture en base 10 du nombre 1010102 .
2. Donner l’écriture en base 2 de 163 .
3. Donner l’écriture en base 16 de 10010110110010102 .
4. Donner l’écriture de 5E16 en base 2, puis en base 10.
3,5 points
Exercice 2 : Codage des entiers relatifs
1. Quels entiers naturels peut-on représenter avec des mots de 8 bits ? et quels entiers relatifs ?
2. a. Donner de deux façons différentes la représentation binaire sur 8 bits de −22.
b. Effectuer en binaire la multiplication de −22 par 5.
c. De quel entier relatif obtient-on la représentation ? (attention : on travaille toujours sur 8 bits.)
3. Soit x et x 0 deux entiers négatifs représentés en mémoire sur 8 bits respectivement par m et m 0 . On suppose que x ×x 0
peut être représenté sur 8 bits (c’est à dire qu’il est dans l’intervalle donné à la question 1.). Montrer qu’en effectuant
le produit de m par m 0 (toujours sur 8 bits), on obtient la représentation de x × x 0 .
2,5 points
Exercice 3 : Variables et affectations
On a tapé dans une console Python la suite d’instructions suivantes. Indiquer à côté de chaque ligne la valeur des variables a et b après l’exécution de la ligne.
a
>>> a, b = 42, 15
>>> a = 2 * b
>>> b += 6
>>> a = a - 10 ; b = a - 10
>>> a, b = a + 10, a
7,5 points
Exercice 4 : Fonctions
1. Écrire une fonction angle_reflexion en Python qui prend en
argument l’angle d’incidence theta1 d’un rayon lumineux, et
qui renvoie l’angle de réflexion.
Formule : les angles d’incidence θ1 et réflexion θ2 sont liés par
la relation dite de Snell-Descartes :
θ2 = −θ1
b
2. Écrire une fonction angle_refraction en Python qui prend
en argument les indices de réfractions n1 et n2 de deux milieux
et l’angle incident theta1 d’un rayon lumineux, et qui renvoie
l’angle réfracté.
Formule : les indices de réfraction n 1 et n 2 de chacun des milieux et les angles incident θ1 et réfracté θ2 sont liés par la relation dite de Snell-Descartes :
n 1 · sin(θ1 ) = n 2 · sin(θ2 )
Remarque : on pourra considérer que Python connaît les fonctions sin et arcsin (équivalent du sin−1 de la calculatrice).
3. Écrire une fonction est_refracte en Python qui prend en argument les indices de réfractions n1 et n2 de deux
milieux et l’angle incident theta1 d’un rayon lumineux, et qui renvoie un booléen indiquant si le rayon est réfracté
ou pas.
Rappel : le rayon est réfracté si
n1
n2
· sin(θ1 ) É 1). Sinon, il y a réflexion totale et le rayon réfracté n’existe pas.
4. Écrire un programme Python qui :
• demande à l’utilisateur de rentrer les valeurs des indices de réfractions et de l’angle incident ;
• affiche la valeur de l’angle de réflexion ;
• affiche soit la valeur l’angle de réfraction, soit un message indiquant qu’il y a réflexion totale.
3 points
Exercice 5 : Fonctionnement d’un algorithme
On considère l’algorithme suivant :
Entrées : n ∈ N, a ∈ R
Sorties : r = ? ? ?
r ←1
tant que n > 0 faire
si n est pair alors
n ← n/2
sinon
r ←r ×a
n ← (n − 1)/2
a ← a2
Compléter le tableau suivant, en faisant fonctionner cet algorithme pour a = 5 et n = 13.
Remarques :
• les lignes ne sont pas forcément toutes utiles ;
• on se dispensera de calculer explicitement les puissances de 5.
Étape
a
r
Initialisation
Fin d’itération 1
Fin d’itération 2
Fin d’itération 3
Fin d’itération 4
Fin d’itération 5
Que semble calculer cet algorithme ? (On ne demande pas de justification.)
n
Téléchargement