Aller au contenu

Devoir NSI : Sujet B gpe 4

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

Exercice 1: QCM

Pour chacune des 8 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 = [[9, 8, 7], [6, 5, 4], [3, 2, 1]]

Laquelle des expressions suivantes a pour valeur 7 ?

RĂ©ponses :

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

Question 2

Quelle est la valeur de l'expression [[i, 2*i] for i in range(3)] ?

RĂ©ponses :

A)  [0,0,1,2,2,4]

B)  [0,0,1,1,2,4]

C)  [[0, 0],[1,2],[2,4]]

D)  [[0,0],[1,1],[2,4],[3,9]]

Question 3

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

RĂ©ponses :

A)  3

B)  4

C)  7

D)  8

Question 4

Soient \(n\) et \(p\) deux entiers au moins égaux à 2. On définit une liste de listes t par le code suivant :

#n et p sont initialisés dans les lignes précédentes
t = [[0 for j in range(p)] for i in range(n)]
for k in range(n*p):
    t[k%n][k%p] = k

Une et une seule des affirmations suivantes est fausse. Laquelle ?

RĂ©ponses :

A)  La liste t contient des entiers k tels que 0 <= k < n * p.

B)  Pour tout j tel que 0 <= j < n - 1, t[j][0] est un multiple de p.

C)  La liste t[0] contient des entiers qui sont tous multiples de n.

D)  Pour tout j tel que 0 <= j < n - 1, t[0][j] est un multiple de p.

Question 5

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 = -9
for i in range(3):
    S = S + res[2][i]

RĂ©ponses :

A)  12

B)  15

C)  18

D)  24

Question 6

image = [[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]

for i in range(4) :

    for j in range(4) :

        if (i+j)%2 == 1 :

            image[i][j] = 1

RĂ©ponses :

A)  [[1,0,1,0],[0,1,0,1],[1,0,1,0],[0,1,0,1]]

B)  [[1,1,1,1],[0,0,0,0],[1,1,1,1],[0,0,0,0]]

C)  [[0,1,0,1],[1,0,1,0],[0,1,0,1],[1,0,1,0]]

D)  [[0,0,0,0],[1,1,1,1],[0,0,0,0],[1,1,1,1]]

Question 7

On définit la variable suivante : citation = 'Les nombres gouvernent le monde'.

Quelle est la valeur de l'expression citation[4:11] ?

RĂ©ponses :

A)  ombre

B)  ombres

C)  nombre

D)  nombres

Exercice 2:

Péloponnèse Télécom, l'opérateur téléphonique local souhaite construire son réseau de transmission de données. Mais la concurrence est rude et le milieu ne fait pas de cadeaux.

Lors d'un stand-up meeting à Péloponnèse Télécom, un ingénieur propose un moyen de se démarquer de la concurrence : compresser les données qui circulent sur le réseau.

Une particularité des données qui transitent sur les réseaux est la répétitivité de celles-ci : souvent les utilisateurs envoient des messages comme BONJOOOUURAAN ou GENIALAAAN.

Respectivement, en version compressée les messages s'écrivent de la manière suivante : 1B1O1N1J3O2U1R2A1N et 1G1E1N1I1A1L3A1N.

  1. Écrire une fonction qui permet de décompresser les données.
  2. Écrire une fonction qui permet de compresser les données.

Exemple:

>>>decomp('1B1O1N1J3O2U1R2A1N')
>>>'BONJOOOUURAAN'
>>>comp('GENIALAAAN')
>>>'1G1E1N1I1A1L3A1N'
Correction
comp='1B1O1N1J3O2U1R2A1N'
  def decompression(T):
      res=''
      for i in range(0,len(T),2):
          for j in range(int(T[i])):
              res=res+T[i+1]
      return res

  dec='CCCHIIIEENNNN'
  def compression(T):
      res=''
      i=0
      while i<len(T)-1:
          lettre=T[i]
          c=0
          while lettre==T[i] and i!=len(T)-1:
              i=i+1
              c+=1
          res=res+str(c)+lettre
      return res
  print(compression(dec))

Exercice 3:

Le but de l'exercice est de mettre dans des boîtes en plastique les restes d'un repas.

Un aliment d'un certain volume ne peut entrer que dans une boîte d'un volume supérieur ou égal. Afin de conserver au mieux le goût de la nourriture, on ne mettra qu'un aliment dans chaque boîte.

En entrée, on a deux listes: celle des volumes des restes, et celle des volumes des boîtes.

On dispose d'autant de boîtes vides que nécessaire.

L'objectif est de retourner le nombre de boîtes remplies.

Exemple:

>>>rangement([832,342,500],[750,250,500])
>>>4