Retour
2025
2025 Asie Jour 1
Session 2025
Durée : 3h30
3 Exercices
"Sujet officiel."
EXERCICE 1 : (6 points)
Thème : NSI6 points
(6 points) Cet exercice porte sur la décidabilité, l’algorithmique et la programmation en Python. En Python, on peut utiliser le triple guillemet pour écrire une chaîne de caractères sur plusieurs lignes. Par exemple, on peut définir une variable programme1 qui contient la chaîne de caractères correspondant à un petit programme Python de la manière suivante : 1 programme1 = """ 2 x = 10 3 y = 10 4 while x > 0: 5 x = x - 1 6 y = y + 1 7 """ De même, on peut définir la variable programme2 : 1 programme2 = """ 2 def boucle_infinie(): 3 while True: 4 pass # Ne rien faire 5 boucle_infinie() 6 """
1
Voir le sujet complet pour les détails.
EXERCICE 2 : (6 points)
Thème : NSI6 points
(6 points) Cet exercice porte sur les arbres et la compression d’un fichier texte. Quand il s’agit de transmettre de l’information sur un canal non bruité, l’objectif prioritaire est de minimiser la taille de la représentation de l’information : c’est le problème de la compression de données. Le code de Huffman (1952) est un code de longueur variable optimal, c’est-à-dire tel que la longueur moyenne d’un texte codé est minimale. On observe ainsi des réductions de taille de l’ordre de 20 % à 90 %. Ce code est largement utilisé, souvent combiné avec d’autres méthodes de compression. Partie A : Coder du texte On donne, en Figure 1 ci-dessous, la table d’encodage hexadécimal des caractères ISO/CEI 8859-1, dite ASCII Latin 1. Figure 1. Table ISO/CEI 88-59-1 Chaque caractère est codé sur 8 bits, soit deux chiffres hexadécimaux, correspondant respectivement à la ligne et à la colonne à l’intersection desquelles il figure. Par exemple, pour la lettre ‘H’ figurant à l’intersection de la ligne ‘4x’ et de la colonne ‘x8’, le code hexadécimal est ‘48’. La chaîne de caractère ‘Hello_World_!’ est codé par : ‘48 65 6C 6C 6F 5F 57 6F 72 6C 64 5F 21’ Dans cette table, le caractère ESPACE est symbolisé par SP. Soit la chaîne de caractères txt = "SIX ANANAS". 25-NSIJ1JA1 Page : 6 / 13
1
Voir le sujet complet pour les détails.
EXERCICE 3 : (8 points)
Thème : NSI8 points
(8 points) Cet exercice porte sur les dictionnaires et leurs algorithmes associés, le traitement de données en table, la sécurisation des communications et la programmation en général. Lorsque l’énoncé demande la manipulation de la structure de données abstraites liste, on utilisera les list en Python avec la méthode append. Un club de judo souhaite développer un système d’informations pour faciliter les traitements administratifs en cours d’année (inscriptions, communication, compétitions…). Cet exercice comporte 2 parties indépendantes. Partie A On pourra utiliser les mots du langage SQL suivants : SELECT, FROM, WHERE, JOIN ON, INSERT INTO, VALUES, COUNT, DELETE. Le club de Judo souhaite proposer à ses adhérents une location de kimonos. Pour cela, il décide de mettre en place une base de données contenant les relations adherent, kimono et location. Le schéma relationnel, où les clés primaires sont soulignées et les clés étrangères sont précédées du symbole #, est le suivant : adherent( numero-licence , taille-adherent, nom, prenom) kimono( id-kimono , taille-kimono) location( #numero-licence , #id-kimono , debut, fin) L’attribut id-kimono est un nombre entier. Les attributs taille-adherent et taille- kimono sont des nombres entiers dont l’unité est le centimètre et qui sont tous multiples de 10 (100, 110, 120, 130,…). Les attributs debut et fin sont des dates au format chaîne de caractères ‘AAAA-MM- JJ’. Tous les attributs doivent être renseignés et valides mais l’attribut fin peut éventuellement être égal à la chaîne de caractères vide '' pour les kimonos en cours de location. On rappelle qu’en langage SQL la fonction d’agrégation COUNT permet de compter un nombre d’enregistrements. Par exemple, pour déterminer le nombre d’adhérents du club, on peut utiliser la requête suivante : SELECT COUNT(numero-licence) FROM adherent
1
Voir le sujet complet pour les détails.