Académique Documents
Professionnel Documents
Culture Documents
NB : Les documents, les calculettes et les téléphones mobiles ne sont pas autorisés
Les entiers positifs de n chiffre ont 10n valeur dans [0, 10n-1].
Avec x bits on peut coder 2x valeurs, on cherche donc x tel que : 2x=10n
x log(2) = n log(10)
x = n log2(10)
x est un entier donc : x = E( n log2(10) ) +1
3 Quel est le nombre à virgule ayant la représentation suivante sur 32 bits en IEEE 754
1 10010111 11101000011101010000000
-1,1110100001110101 2151-127
4 Déduire une méthode rapide pour multiplier ou diviser par 2k un nombre binaire.
Le code de 25 est 11001 ; le code de 50 est 110010 et le code 100 est : 1100100
On remarque que la représentation binaire de 50 est obtenue à partir de celle de 25 en rajoutant un bit de
Exercice 2 : (4 pts)
1
On imagine dans cet exercice un robot utilisé pour explorer et photographier une surface plane
quelconque qu'on représente par une grille. Il est piloté à distance par un utilisateur humain
qui peut lui envoyer différentes instructions :
- AV : avancer d'une case
- TG : se tourner 90° vers la gauche
- TD : se terminer 90° vers la droite
- LT : Lever la tête
- BT : Baisser la tête
- PP : Prendre une photo
1. Quel est le nombre minimal de bits nécessaires pour coder les instructions ?
Il y a 6 instructions à coder. 2 bits ne sont pas suffisants mais 3 suffisent : 4=2 2 < 6 < 23=8
3. Notez bien qu'il reste encore deux codes non utilisés. Lesquelles ?
110
111
5. Ce schéma n'est adapté pour les cas où le robot doit parcourir de longues distances en
lignes droites. Pourquoi ?
Car dans ce cas, l'utilisateur humain devra envoyer de longues séquences de 000.
On peut utiliser la combinaison binaire 110 qui n'était pas utilisée dans notre schéma de codage
pour coder l'instruction :
- AP = avancer de plusieurs cases
Comme cette instruction ne précise pas le nombre de cases sur lequel le robot doit avancer, on
fait suivre sa représentation binaire d'un certain nombre de bits, par exemple 4, qui indique le
nombre de cases sur lequel on souhaite faire avancer le robot. L'instruction AP est donc codée
2
sur 7 bits : les 3 premiers bits valent 110 et les 4 suivants indiquent le nombre de cases sur
lequel on fait avancer le robot.
Les sept premiers bits indiquent que l'on fait avancer le robot sur 4 cases : 110 pour l'instruction AP et 0100
pour demander 4 cases. Le reste de la séquence est inchangé.
Exercice 3 : (4 pts)
Environ 25000 étudiants sont inscrits à l'université Hassan II. On peut estimer à 5000 le nombre
de nouveaux étudiants à inscrire chaque année. Un numéro est attribué à chaque étudiant. Bien
évidemment, deux étudiants différents ne doivent pas voir le même numéro
1 Combien de bits sont nécessaires pour coder un de ces numéros (pour que chacun des
25000 étudiants ait un numéro distinct) ?
E(Log2(25000)) + 1 = 15 bits
2 Les logiciels utilisés ont l'octet comme unité de mémoire. Combien d'octets sont
nécessaires pour coder un numéro d'étudiant ?
2 octets
3 Pour chaque étudiant, on mémorise en plus de son numéro, son nom, son prénom, sa
date de naissance, son adresse, et divers renseignements concernant sa scolarité. En
supposant qu'au total un kilo-octet doit être réservé pour chaque étudiant, pourra-t-on
stocker l'ensemble de ces enseignements (pour tous les étudiants) sur un CD-ROM ? en
mémoire vive (RAM) d’un ordinateur ordinaire ? sur un disque dur de capacité
standard ?
Partie II : Algorithmique
Exercice 1 : Calcul du salaire d'un employé ( 3 pts )
Les retenues de sécurité sociale sont calculées à partir du salaire brut multiplié par le taux de
retenue de la sécurité sociale qui est une constante valant 0.19.
3
L'employé bénéficie d'une prime d'ancienneté qui équivaut à 2% du salaire brut pour + de 10
ans et -20 ans d'ancienneté et 5% du salaire brut pour + 20 ans d'ancienneté.
N = int( input())
S = float(input())
A = int(input())
S = S* 1.02
if A>20 :
S = S*1.05
sNet = N*S*(1-0.19)
L’objectif de cet exercice est d’écrire un programme Python permettant de calculer une valeur
approchée d’une intégrale.
Si f est une fonction continue sur un intervalle [a,b], bien souvent on ne sait pas calculer une
𝑏
primitive de f. Ainsi, si l'on désire obtenir la valeur de ∫𝑎 𝑓(𝑡)𝑑𝑡 , il faut parfois se contenter
d'obtenir une valeur approchée à l'aide d'une méthode d'intégration numérique.
a 𝑓(𝑎𝑖 )+𝑓(𝑎𝑖+1 )
La méthode des trapèzes : on approche ∫a i+1 f(t)dt par (𝑎𝑖+1 − 𝑎𝑖 ) 2
.
i
4
Géométriquement, cela signifie qu'on approche l'intégrale de f par l'aire des trapèzes :
Ecrire un programme qui calcul une valeur approchée de l’intégrale I avec un nombre de
points de maille N = 100.