Classe de première NSI Mercredi 12 février 2020 Devoir surveillé n°4
Partie A : à traiter sur feuille Exercice 1 (8 points)
On rappelle que pour coder des flottants sur 64 bits, on a dans l’ordre le signe sur 1 bit, l’exposant sur 11 bits et la mantisse sur 52 bits, et que l’exposant est codé en décalage de 1023, les exposants normalisés allant de 1 à 2046.
1. Comment faut-il changer le code pour multiplier un flottant par 2 ?
2. Quel est le flottant de code 1 01000000000 11000…0 ? (la mantisse comporte deux chiffres 1 suivis de 50 chiffres 0)
3. Écrire le nombre 105 en binaire 4. Ecrire le nombre 0,671875 en binaire
5. En déduire la décomposition binaire du nombre 105,671875 6. Quelle sera la représentation sur 64 bits du nombre 105,671875 ?
Exercice 2 (4 points)
On a écrit la fonction suivante : def puissance(a,b) :
prod=1 k = 0 while k<b : prod = prod*a k=k+1
return prod
Montrez que prod==ak est un invariant de boucle.
En déduire le rôle de la fonction
Partie B : à traiter sur ordinateur. Ouvrez le dossier DS_fevrier
Exercice 3 (8 points)
Ouvrez avec un éditeur de texte (notepad++ ou geany…) le fichier alcoolemie.htm qu’il vous faudra compléter
1. Complétez le formulaire ligne 16 pour que la personne puisse donner son poids 2. Pour un homme, le calcul de l’alcoolémie peut se faire, de manière approchée, en
multipliant le nombre de verres par 10 et en divisant par le poids multiplié par 0,7.
Complétez la fonction alcoolemie_homme(n,p) ligne 24
3. Complétez maintenant la fonction valider, qui récupère les données du formulaire et affiche le résultat.
4. Si l’alcoolémie dépasse 0,5 g/l, on ne peut pas conduire. Complétez l’affichage.
5. Pour une femme, on calcul de l’alcoolémie en divisant par le poids multiplié par 0,6 a) Créez la fonction alcoolemie_femme(n,p)
b) Créez dans le formulaire des boutons radio qui demandent le sexe de la personne c) Complétez enfin la fonction calculer() pour traiter le cas d’une femme
Exercice 4 (4 points)
Ouvrez le fichier prenoms.py. Il ouvre une base de données contenant tous les prénoms donnés en France depuis 1900. Dans la mesure où il y a des erreurs, la bibiothèque csv ne pouvait pas l’ouvrir. Les lignes 7 à 29 créent une liste de dictionnaires, nommée prenoms_dict.
Il ne faut pas y toucher. Les lignes 30 à 35 créent la fonction sélection, qui est complète. Les lignes 37 à 45 créent la fonction projection.
1. Compléter la ligne 44
2. Compléter la ligne 47, qui extrait les lignes de prénom Dominique
3. Compléter la ligne 48, qui, parmi les naissances de prénom Dominique, trie les filles.
4. Les lignes 49 à 52 comptent les filles prénommées Dominique. Complétez la ligne 52