Bac Général
Classe : Terminale
Centre d’examen : Asie
Matière : Numérique et Sciences Informatiques
Année : 2024
Session : Normale
Durée de l’épreuve : 3 heures 30
Repère de l’épreuve : 24-NSIJ2JA1
L’usage de la calculatrice n’est pas autorisé.
Le sujet est composé de trois exercices indépendants.
Le candidat traite les trois exercices.
EXERCICE 1 (6 points)
Cet exercice porte sur la programmation Python (listes, dictionnaires) et la méthode “diviser pour régner”.
Cet exercice est composé de trois parties indépendantes.
Dans cet exercice, on s’intéresse à des algorithmes pour déterminer, s’il existe, l’élément absolument majoritaire d’une liste.
On dit qu’un élément est absolument majoritaire s’il apparaît dans strictement plus de la moitié des emplacements de la liste.
Par exemple, la liste [1, 4, 1, 6, 1, 7, 2, 1, 1] admet 1 comme élément
absolument majoritaire, car il apparaît 5 fois sur 9 éléments. Par ailleurs, la liste [1,4, 6, 1, 7, 2, 1, 1] n’admet pas d’élément absolument majoritaire, car celui qui est le plus fréquent est 1, mais il n’apparaît que 4 fois sur 8, ce qui ne fait pas plus que la moitié.
1. Déterminer les effectifs possibles d’un élément absolument majoritaire dans
une liste de taille 10.
EXERCICE 2 (6 points)
Cet exercice porte sur la programmation, la programmation orientée objet et les structures de données linéaires.
Cet exercice est composé de 2 parties indépendantes.
Dans cet exercice, on appelle parenthèses les couples de caractères (), {} et [].
Pour chaque couple de parenthèses, la première parenthèse est appelée la
parenthèse ouvrante du couple et la seconde est appelée la parenthèse fermante du couple.
On dit qu’une expression (chaine de caractères) est bien parenthésée si
• chaque parenthèse ouvrante correspond à une parenthèse fermante de même type ;
•les expressions comprises entre parenthèses sont des expressions bien
parenthésées.
Par exemple, l’expression ‘tab[2(i + 4)] – tab[3]’ est bien parenthésée.
En revanche, l’expression ‘tab[2(i + 4] – tab[3)’ n’est pas bien parenthésée,
car la première parenthèse fermante ] devrait correspondre à la dernière parenthèse ouvrante (.
EXERCICE 3 (8 points)
Cet exercice porte sur les bases de données relationnelles, les requêtes SQL et la programmation en Python.
L’énoncé de cet exercice utilise des mots-clés du langage SQL suivants : SELECT, FROM, WHERE, JOIN… ON, UPDATE… SET, INSERT INTO… VALUES…, COUNT, ORDER BY.
La clause ORDER BY suivie d’un attribut permet de trier les résultats par ordre croissant de l’attribut précisé. SELECT COUNT(*)renvoie le nombre de lignes d’une requête.
Amélie souhaite organiser sa collection de CD. Elle a commencé par enregistrer toutes les informations sur un fichier CSV mais elle trouve que la recherche d’informations est longue et fastidieuse. Elle repense à son cours sur les bases de données et elle se dit qu’elle doit pouvoir utiliser une base de données relationnelle pour organiser sa collection.