Bac Général
Classe : Terminale
Centre d’examen : Métropole Candidat libre
Matière : Numérique et Sciences Informatiques
Année : 2021
Session : Normale
Durée de l’épreuve : 3 heures 30
Repère de l’épreuve : 21-NSIJ2ME2
L’usage de la calculatrice n’est pas autorisé.
Le candidat traite au choix 3 exercices parmi les 5 exercices proposés
Chaque exercice est noté sur 4 points.
Exercice 1 (4 points)
Cet exercice porte sur les bases de données relationnelles et le langage SQL.
L’énoncé de cet exercice utilise les mots du langage SQL suivants :
SELECT FROM, WHERE, JOIN ON, INSERT INTO VALUES, UPDATE, SET, DELETE, COUNT, AND,OR.
On considère dans cet exercice une gestion simplifiée des emprunts des ouvrages d’un CDI. La base de données utilisée sera constituée de trois relations (ou tables) nommées Eleves, Livres et Emprunts selon le schéma relationnel suivant :
Exercice 2 (4 points)
Cet exercice porte sur la gestion des processus et des ressources par un système d’exploitation.
1. Les états possibles d’un processus sont : prêt, élu, terminé et bloqué.
a. Expliquer à quoi correspond l’état élu.
b. Proposer un schéma illustrant les passages entre les différents états.
Exercice 3 (4 points)
SCet exercice porte sur les arbres binaires de recherche et la programmation orientée objet.
On rappelle qu’un arbre binaire est composé de nœuds, chacun des nœuds possédant éventuellement un sous-arbre gauche et éventuellement un sous-arbre droit. Un nœud sans sous-arbre est appelé feuille. La taille d’un arbre est le nombre de nœuds qu’il contient ; sa hauteur est le nombre de nœuds du plus long chemin qui joint le nœud racine à l’une des feuilles. Ainsi la hauteur d’un arbre réduit à un nœud, c’est-à-dire la racine, est 1.
Exercice 4 (4 points)
Cet exercice porte sur la programmation en général et la récursivité en particulier.
On s’intéresse dans cet exercice à un algorithme de mélange des éléments d’une liste.
1. Pour la suite, il sera utile de disposer d’une fonction echange qui permet
d’échanger dans une liste lst les éléments d’indice i1 et i2.
Expliquer pourquoi le code Python ci-dessous ne réalise pas cet échange et en proposer une modification.
def echange(lst, i1, i2):
lst[i2] = lst[i1]
lst[i1] = lst[i2]
Exercice 5 (4 points)
Cet exercice porte sur la programmation en général.
Étant donné un tableau non vide de nombres entiers relatifs, on appelle sous-séquence une suite non vide d’éléments voisins de ce tableau. On cherche dans cet exercice à déterminer la plus grande somme possible obtenue en additionnant les éléments d’une sous-séquence.
Par exemple, pour le tableau ci-dessous, la somme maximale vaut 18.
Elle est obtenue en additionnant les éléments de la sous-séquence encadrée en gras cidessous (6 ; 8 ; -6 ; 10).