Exercice 3 - Partie C : Intégrité des données et… · Bac Numérique et Sciences Informatiques Asie 2025 (jour 2)
Thème : Binaire, entiers et opérateurs booléens · Tiré du sujet Jour 2 (2025)
Énoncé
EXERCICE 3 (8 points)
Cet exercice porte sur la programmation Python (dictionnaire, récursivité, spécification), la programmation orientée objet, les bases de données relationnelles, les requêtes SQL et les arbres binaires.
Cet exercice est composé de 3 parties indépendantes.
Partie A
Dans cette partie, on s'intéresse à la gestion de la base de données d'un hôpital. On pourra utiliser les mots-clés SQL suivants: AND, FROM, INSERT, INTO, JOIN, ON, SELECT, SET, UPDATE, VALUES, WHERE. On utilisera également la fonction d'agrégation COUNT qui renvoie le nombre d'enregistrements correspondant à une requête.
La table Patient possède les attributs suivants:
nom_patient de type TEXT (clé primaire);
prenom de type TEXT;
numero_secu de type INT;
age de type INT.
La table Symptome possède les attributs suivants:
nom_patient de type TEXT (clé primaire et clé étrangère);
toux de type TEXT;
fievre de type TEXT;
nausee de type TEXT;
anosmie de type TEXT.
Partie C
Dans cette partie, on s'intéresse à l'intégrité et à la sécurité des données.
Sur les 15 chiffres du numéro de sécurité sociale, 2 servent à détecter les erreurs: étant donné le nombre formé des 13 premiers chiffres, le nombre formé des 2 derniers chiffres, appelé la clé, est choisi pour que soit un multiple de 97.
Par exemple, 207053523800187 est bien formé car:
On rappelle que les opérateurs % et // permettent en Python d'obtenir respectivement le reste et le quotient dans une division euclidienne. Par exemple: 13 % 3 renvoie 1 et 13 // 3 renvoie 4 (car ). On peut donc vérifier qu'un nombre entier est un multiple de en testant si le reste de la division de par vaut zéro.
13.
Recopier et compléter la fonction verifie suivante qui renvoie un booléen indiquant si un numéro de sécurité sociale représenté par un entier (type int) est bien formé.
def verifie(num_secu):
n = num_secu // 100
k = num_secu % 100
return...
14.
Compléter la fonction cle qui permet de renvoyer la clé d'un numéro de sécurité sociale en prenant pour paramètre le nombre formé des 13 premiers chiffres du numéro de sécurité sociale.
def cle(n):

Corrigé
Corrigé proposé par AprenAI (non officiel)
13. Recopier et compléter la fonction verifie suivante qui renvoie un booléen indiquant si un numéro de sécurité sociale représenté par un entier (type int) est bien formé.
Réponse : ```python return (n + k) % 97 == 0 ``` ```python (n + k) % 97 == 0 ```
La réponse de la question restante et l’explication pas à pas sont réservées aux membres Premium. Premium
Résous-le ici : correction automatique, indices et corrigé détaillé.
‹ Exercice 2 - Partie A · Asie 2025 (jour 1) · Exercice 5 · Asie 2022 (jour 1) ›