NOM et Prénom ……… Classe de Première Spécialité NSI Année 2020 2021
....
....
CONTROLE 2 (55’)
CODAGE BINAIRE ; TYPES CONSTRUITS ; TABLES
Note attendue : Calculette interdite. Relisez-vous !
Bon courage !
➢ Exercice n° 1 (…………..……… / 6 points) : Numérisation des entiers.
Pour chaque affirmation, 4 choix sont proposés dont un seul est vrai. Lequel ? L’entourer.
Barème : réponse juste =1 pt sans réponse ou réponse fausse = 0 pt
Affirmations Choix 1 Choix 2 Choix 3 Choix 4
Pour convertir en base 10 un nombre écrit en base 2, on peut :
effectuer une suite de divisions euclidiennes
par 2.
effectuer une suite de divisions euclidiennes
par 10.
additionner des puissances de 2.
additionner des puissances de 10.
Le nombre d’entiers non
signés codables sur n bits est 2n − 1 − 1 2n − 1 2n − 1 2n
Sur n bits, le plus petit entier signé négatif
représentable en machine est
-2n -2n − 1 -2n − 1 -2n − 1 − 1
L’écriture binaire du plus grand entier signé négatif
commence par 1 suivi que de 0.
commence par 0 suivi que de 1.
commence par 1 suivi que de 1.
commence par 0 suivi que de 0.
Soit l’entier signé ayant pour écriture binaire 1011.
Cet entier est
11 -3 -5 5
Sur n bits, l’inversé bit à
bit correspond au complémentaire à 1. complémentaire à 2. complémentaire à
2n − 1. complémentaire à 2n.
➢ Exercice n° 2 (………..………… / 10 points) : Entourer le seul choix vrai.
(D’après Banque Nationale des sujets, sujet 1 question B2) Soit T une liste, que vaut T à la suite de ce script :
T = [ 2 , 2 , 2 , 2 ] T[2] = T[2] + 2
1) [ 2 , 4 , 2 , 2 ] 2) [ 4 , 4 , 4 , 4 ] 3) [ 2 , 2 , 2 , 2 , 2 ] 4) [ 2 , 2 , 4 , 2 ]
La compréhension de liste ci-dessous génère : [ x**2 for x in range (4) if x % 2 == 0 ]
1) [ 0 , 4 , 16 ] 2) [ 0 , 4 ]
3) [ 2**2 , 4**2 ] 4) [ 0 , 1 , 4 , 9 ]
☺ ☺☺
Numération des entiers
Listes, tuples, dictionnaires : q1 à 5 Tables de données q6-7
Programmation q8 à 10
Rattrapage. Apporter le contrôle refait sur feuille !
NOM et Prénom ……… Classe de Première Spécialité NSI Année 2020 2021
a , c = 1 , 2
b = ( [ c , a ] , c ) c = 3
Que vaut b à la fin de l’exécution de ce script ?
1) ( [ 3 , 1 ] , 3 ) 2) ( [ 1 , 2 ] , 1 ) 3) ( [ 2 , 1 ] , 2 ) 4) ( [ 3 , 1 ] , 2 )
Un autre nom des clés d’un dictionnaire :
1) Indices.
2) Valeurs.
3) Index nommés.
4) Index numérotés.
Soit le dictionnaire Dico :
Dico = { ‘a’ : 1 , ‘b’ : 2 , ‘c’ : 3 } Pour changer la valeur 2 par 3, il faut faire
1) Dico [2] = 3 2) Dico (‘b’) = 3 3) Dico [‘b’] = 3 4) Dico {‘b’} = 3
Un tableau à entêtes colonnes est implémenté en Python par : 1) une liste de listes.
2) un dictionnaire ayant pour valeurs des listes.
3) un dictionnaire ayant pour valeurs des dictionnaires.
4) une liste de dictionnaires.
(D’après Banque Nationales des Sujets, sujet 1, Question C3) Soit Table la liste de p-uplets suivants représentant un informaticien ou une informaticienne célèbre. :
Table = [ ('Grace','Hopper','F',1906), ('Tim', 'Berners-Lee', 'H', 1955), ('Ada', 'Lovelace', 'F', 1815), ('Alan', 'Turing', 'H', 1912) ] On définit la fonction ci-dessous : def fonctionMystere(table):
résultat = [ ] for ligne in table :
if ligne[2] == 'F':
résultat.append(ligne[1]) return résultat
Que retourne fonctionMystere( Table ) ?
1) [‘Grace’, ‘Ada’]
2) [‘Hopper’, ’Lovelace’]
3) [ ]
4) [ ('Grace', 'Hopper', 'F', 1906), ('Ada', 'Lovelace', 'F', 1815) ]
NOM et Prénom ……… Classe de Première Spécialité NSI Année 2020 2021
(D’après Banque Nationale des sujets, sujet n°11 question F6) Soient A un entier strictement positif et le programme suivant :
k = 0
while 2**k ≤ A : k = k + 1
Que contient la variable k à la fin de l'exécution du programme ?
1) L’exposant de la plus grande puissance de 2 < A.
2) L’exposant de la plus grande puissance de 2 ≤ A.
3) L’exposant de la plus petite puissance de 2 > A.
4) L’exposant de la plus petite puissance de 2 ≥ A.
Soit L une liste d'entiers. On définit la fonction suivante : def trouver_max(L):
max = L[0]
for élément in L :
if ……….. :
………..
return max
Compléter les 2 lignes en pointillés pour que cette fonction retourne l’élément maximum de la liste L.
(D’après Banque Nationale des sujets, sujet n°1 question B1) On veut construire la liste t :
t = [ [0 , 1 , 2] , [3 , 4 , 5] , [6 , 7 , 8] , [9 , 10 , 11] ].
Pour cela on utilise le script suivant : n = 4
p = 3
t = [ [ ………..… for j in range(p) ] for i in range(n) ] Par quoi faut-il remplacer les pointillés ?
1) i * j + j 2) p * j + i 3) p * i + j 4) i * ( j + 1)
… / …
NOM et Prénom ……… Classe de Première Spécialité NSI Année 2020 2021
➢ Exercice n° 3 (………..………… / 4 points) : Encodage binaire par divisions successives.
1. Appliquer l’algorithme par divisions successives afin de donner l’écriture binaire de 23 (………. / 1 pt) :
2. Ecrire une fonction Convbinaire_par_divisions( ) qui en entrée reçoit un nombre entier quelconque et en sortie renvoie son écriture binaire sous forme de chaîne de caractères, grâce à l’algorithme par divisions successives. (……….. / 3 pts)
23