Aller au contenu

Devoir NSI : Sujet A

L'usage de la calculatrice n'est pas autorisé. Durée : 55min

Exercice 1: QCM

Pour chacune des 6 questions, entourer la réponse correcte (+1). Une mauvaise réponse enlève 0.5, l'absence de réponse n'enlève ni ne rapporte de points.

Question 1

On définit : T = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

Laquelle des expressions suivantes a pour valeur 3 ?

Réponses :

A)  T[1][3]
B)  T[3][1]
C)  T[0][2]
D)  T[2][0]

Question 2

Quelle est la valeur de l'expression [[i+1, 3-i] for i in range(3)] ?

Réponses :

A)  [1,2,3,3,2,1]
B)  [1,2,3,4,3,2,1,0]
C)  [[1, 3], [2, 2], [3, 1]]
D)  [[1, 3], [2, 2], [3, 1], [4, 0]]

Question 3

On définit : L = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]. Quelle est la valeur de L[L[L[3]]] ?

Réponses :

A)  3
B)  4
C)  7
D)  Cette expression provoque une erreur.

Question 4

Quelle est la valeur de la variable S à la fin de l'exécution du script suivant ?

res = [ [1,2,3], [4,5,6], [7,8,9] ]
S = 0
for i in range(3):
    S = S + res[2-i][1]

Réponses :

A)  12
B)  15
C)  18
D)  24

Question 5

Que vaut maliste a l'issue du code ci-dessous :

maliste=[ 5, 3, 2, 6, 5, 4]
maliste.remove(3)

Réponses :

A) [ 5, 2, 6, 5, 4]
B) [ 5, 3, 2, 5, 4]
C) None
D) le code renvoie une erreur

Question 6

Soit le plateau de jeu suivant: jeu = [['X', 'O', 'X'], ['X', '', ''], ['', '', '']]. Quelle instruction permet de faire gagner les 'X' en un seul coup ?

Réponses :

A) jeu[1][3] = 'X'
B) jeu[0][2] = 'X'
C) jeu[3][1] = 'X'
D) jeu[2][0] = 'X'

Exercice 2

Écrire une fonction doubles qui prend en paramètre un tableau de nombres entiers. Cette fonction renvoie la liste (éventuellement vide) des couples d'entiers (a, b) tels que a et b soient deux termes successifs dans le tableau, et la valeur de b soit le double de celle de a.

Exemples

>>> doubles([1, 4, 2, 5])
[]
>>> doubles([1, 3, 6, 7])
[(3, 6)]
>>> doubles([7, 1, 2, 5, 3, 6])
[(1, 2), (3, 6)]
>>> doubles([5, 1, 2, 4, 8, -5, -10, 7])
[(1, 2), (2, 4), (4, 8), (-5, -10)]

Exercice 3

Un tableau peut contenir plusieurs fois le même élément. C'est le cas du tableau tableau_1 ci-dessous :

tableau_1 = [1, 2, 3, 6, 2, 4, 5]

La valeur 2 est deux fois dans ce tableau. Au contraire, dans le tableau tableau_2, toutes les valeurs sont uniques :

tableau_2 = ['chien', 'chat', 'lion', 'poisson']

Écrire une fonction tous_differents qui prend un tableau tableau et renvoie un booléen indiquant si toutes les valeurs de tableau sont différentes ou non.

Taille des tableaux

Pour limiter le temps de calcul, on se limitera à des tests avec des tableaux de moins de 100 éléments.

On pourra éventuellement utiliser range(a, b) qui itère sur toutes les valeurs entières allant de a inclus à b exclu.

Exemples

>>> tableau_1 = [1, 2, 3, 6, 2, 4, 5]
>>> tous_differents(tableau_1)
False
>>> tableau_2 = ['chien', 'chat', 'lion', 'poisson']
>>> tous_differents(tableau_2)
True