Devoir de contrôle n°2 STI : objets JavaScript, base de données relationnelle et requêtes SQL
Les fonctions JavaScript de cette correction ont été exécutées avec les valeurs d'exemple données, et les requêtes SQL dans le moteur MySQL du compilateur de Mission Carthage (onglet MySQL), sur la base décrite. Barème sur 20 points.
Exercice 1 : les objets String, Array, Math et Date (6 pts)
Écrire en JavaScript les trois fonctions suivantes :
- initiales(nomComplet) renvoie les initiales en majuscules suivies d'un point : initiales("rim ben salah") donne R.B.S. (2 pts) ;
- moyenneArrondie(tab) renvoie la moyenne des nombres du tableau, arrondie à l'entier le plus proche avec l'objet Math (2 pts) ;
- joursEntre(d1, d2) reçoit deux dates sous la forme "aaaa-mm-jj" et renvoie le nombre de jours de d1 à d2 à l'aide de l'objet Date : joursEntre("2026-05-01", "2026-06-03") donne 33 (2 pts).
Exercice 2 : le schéma de la base « clubs » (6 pts)
Le lycée gère ses clubs avec une base de données MySQL formée de deux tables :
- club (code, nom, salle) : code est la clé primaire ;
- eleve (num, nom, prenom, naissance, classe, points, #code_club) : num est la clé primaire, code_club est une clé étrangère qui référence club(code). Un élève appartient à au plus un club.
- 1) Quelle est la relation entre club et eleve (1:1, 1:n ou n:m) ? Justifier (1 pt).
- 2) Écrire les requêtes CREATE TABLE des deux tables : nom obligatoire, points positifs ou nuls (contrainte CHECK), clé étrangère (3 pts).
- 3) Pour chacune de ces insertions, dire si elle est acceptée et sinon quelle contrainte elle viole : (a) un élève de numéro 101 alors que 101 existe ; (b) un élève dans le club 'MUS' qui n'existe pas ; (c) un élève sans club (2 pts).
Exercice 3 : requêtes SQL (8 pts)
La base « clubs » de l'exercice 2 contient les données suivantes :
- club : (ROB, Robotique, Labo 2), (WEB, Développement web, Salle 12), (ECH, Échecs, sans salle).
- eleve : (101, Ben Ali, Sami, 2009-04-12, 3SI1, 85, ROB), (102, Trabelsi, Rim, 2008-12-30, 3SI2, 92, WEB), (103, Jaziri, Omar, 2009-07-05, 3SI1, 40, ROB), (104, Mansour, Lina, 2009-01-20, 3SI1, 70, sans club), (105, Bouaziz, Aziz, 2008-09-15, 3SI2, 65, ECH).
Écrire les requêtes SQL suivantes, sans jointure ni fonction d'agrégat, et donner leur résultat :
- 1) Le nom et le prénom des élèves de la classe 3SI1, par ordre alphabétique du nom (1,5 pt).
- 2) Le prénom et les points des élèves qui ont entre 60 et 90 points, du plus grand au plus petit nombre de points (1,5 pt).
- 3) Les prénoms des élèves dont le nom commence par « B » (1 pt).
- 4) Les prénoms des élèves nés en 2009 qui n'ont pas de club (1 pt).
- 5) Les noms des clubs qui n'ont pas de salle (1 pt).
- 6) Ajouter 10 points à tous les élèves du club Robotique, puis afficher leur prénom et leurs points (2 pts).
Correction détaillée
La correction de ce devoir est réservée aux abonnés. Elle donne l'analyse, l'algorithme en notation tunisienne, le programme Python vérifié et les erreurs fréquentes de chaque exercice. Avec un compte gratuit, tu peux ouvrir 3 corrections de ton choix.
Connecte-toi d'abord : créer un compte ou me connecter.
Tu as encore 0 correction(s) gratuite(s) à utiliser.
Il te faut un abonnement actif pour les autres corrections. Voir les tarifs ou demander un code sur WhatsApp, Instagram ou Facebook.
Mission Carthage est en période de test : le site s'ouvre avec un code d'accès. Demande ton code sur WhatsApp, Instagram ou TikTok, puis tape-le sur missioncarthage.tn.
Cette correction n'est pas encore publiée. Reviens bientôt.
Impossible de charger la correction. Vérifie ta connexion et réessaie.
Sujet original écrit pour Mission Carthage, dans le style des devoirs de STI de 3ème Sciences de l'informatique (JavaScript, bases de données et MySQL, requêtes sans jointure ni fonction d'agrégat).
Tout le programme : 3ème année Sciences de l'informatique · Revoir le cours · Tous les devoirs