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 nn formé des 13 premiers chiffres, le nombre kk formé des 2 derniers chiffres, appelé la clé, est choisi pour que n+kn+k soit un multiple de 97.

Par exemple, 207053523800187 est bien formé car:

2070535238001+87=97×213457241042070535238001 + 87 = 97 \times 21345724104

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 13=3×4+113 = 3 \times 4 + 1). On peut donc vérifier qu'un nombre entier nn est un multiple de pp en testant si le reste de la division de nn par pp 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é kk d'un numéro de sécurité sociale en prenant pour paramètre le nombre nn formé des 13 premiers chiffres du numéro de sécurité sociale.

def cle(n):

Énoncé: Exercice 3 - Partie C : Intégrité des données et… · Bac Numérique et Sciences Informatiques Asie 2025 (jour 2)

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) ›

Plus d’exercices de Binaire, entiers et opérateurs booléens