Retour
2024
2024 Centres Etrangers Groupe 1 Jour 2
Session 2024
Durée : 3h30
3 Exercices
"Sujet officiel."
EXERCICE 1 : (6 points)
Thème : NSI6 points
(6 points) Cet exercice porte sur la programmation en Python en général, la programmation orientée objet et la récursivité. On se déplace dans une grille rectangulaire. On s’intéresse aux chemins dont le départ est sur la case en haut à gauche et l’arrivée en bas à droite. Les seuls déplacements autorisés sont composés de déplacements élémentaires d’une case vers le bas ou d’une case vers la droite. Un itinéraire est noté sous la forme d’une suite de lettres : • D pour un déplacement vers la droite d’une case ; • B pour un déplacement vers le bas d’une case. Le nombre de caractères D est la longueur de l’itinéraire. Le nombre de caractères B est sa largeur. Ainsi l’itinéraire 'DDBDBBDDDDB' a pour longueur 7 et pour largeur 4. Sa représentation graphique est : S * * * * * * * * * * E • S représente la case de départ (start). Ses coordonnées sont (0 ; 0) ; • * représente les cases visitées ; • E représente la case d’arrivée (end). Partie A – Programmation orientée objet On représente un itinéraire avec la classe Chemin suivante : 24-NSIJ2G11 Page : 3 / 14 1 class Chemin: 2 3 def __init__(self, itineraire): 4 self.itineraire = itineraire 5 longueur, largeur = 0, 0 6 for direction in self.itineraire: 7 if direction == "D": 8 longueur = longueur + 1 9 if direction == "B": 10 largeur = largeur +1 11 self.longueur = longueur 12 self.largeur = largeur 13 self.grille = [['.' for i in range(longueur+1)] for j in range(largeur+1)] 14 15 def remplir_grille(self): 16 i, j = 0, 0 # Position initiale 17 self.grille[0][0] = 'S' # Case de départ marquée d'un S 18 for direction in ...: 19 if direction == 'D': 20 ... = ... # Déplacement vers la droite 21 elif direction == 'B': 22 ... = ... # Déplacement vers le bas 23 self.grille[i][j] = '*' # Marquer le chemin avec '*' 24 self.grille[self.largeur][self.longueur] = 'E' # Case d'arrivée marquée d'un E
1
Voir le sujet complet pour les détails.
EXERCICE 2 : (6 points)
Thème : NSI6 points
(6 points) Cet exercice porte sur la programmation objet, la récursivité, les arbres binaires et les systèmes d’exploitation. Dans cet exercice, on travaille dans un environnement Linux. On considère l’arborescence de fichiers de la figure 1. Figure 1. Arborescence de fichiers Partie A
1
Voir le sujet complet pour les détails.
EXERCICE 3 : (8 points)
Thème : NSI8 points
(8 points) Cet exercice porte sur le codage binaire, les bases de données relationnelles et les requêtes SQL. Cet exercice est composé de deux parties peu dépendantes entre elles. Lorsqu’il y a un accident, les pompiers essaient d’intervenir sur les lieux le plus rapidement possible avec les équipes et le matériel adéquats. On s’intéresse à l’étude d’un système informatique simplifié permettant de répondre à certaines de leurs problématiques. Chaque pompier possède des aptitudes opérationnelles qui lui permettent de tenir un rôle. Lors du départ d’un véhicule (on parle d’agrès), il faut a minima un conducteur et un chef d’agrès. Pour simplifier, on considère que – un Véhicule Tout Usage (VTU) ne requiert que le duo conducteur et chef d’agrès, donc deux pompiers ; – un Véhicule de Secours et d’Assistance aux Victimes (VSAV) requiert, en plus du duo conducteur et chef d’agrès, un équipier, donc trois pompiers ; – un Fourgon Pompe Tonne (FPT) requiert, en plus du duo conducteur et chef d’agrès, un chef d’équipe et un équipier, donc quatre pompiers. On souhaite entrer dans une base de données l’ensemble de ces informations afin de pouvoir conserver un historique des interventions. Partie A – Encodage binaire Afin de gagner de la place mémoire, on décide de coder l’ensemble des aptitudes sur un entier de 8 bits plutôt que d’écrire en toutes lettres “équipier”, “chef d’équipe”, etc. Cet ensemble d’aptitudes formera la qualification du pompier considéré. • Un personnel non formé est codé par 0 ; • l’aptitude “équipier” est codée par le bit de rang 0 (celui de poids le plus faible), soit 20 ; • l’aptitude “chef d’équipe” est codée par le bit de rang 1, soit 21 ; • l’aptitude “chef d’agrès” est codée par le bit de rang 2, soit 22 ; • enfin, l’aptitude “conducteur” est codée par le bit de rang 3, soit 23. Remarque : un chef d’équipe étant nécessairement équipier, on lui ajoute cette aptitude dans son codage. De même, un chef d’agrès est nécessairement un chef d’équipe et un équipier : on lui ajoute ces aptitudes dans son codage. 24-NSIJ2G11 Page : 10 / 14
1
Voir le sujet complet pour les détails.