Devoir pratique STI n°4 : le tournoi inter-lycées, les attributs de son formulaire en JavaScript et ses rencontres en SQL
Écris tes programmes en Python ou en algorithme et vérifie-les tout de suite, puis ouvre la correction exercice par exercice.
Le travail se fait sur ordinateur. Les deux exercices portent sur le site du tournoi de football inter-lycées : l'exercice 1 écrit le fichier tournoi.js de sa page d'inscription, l'exercice 2 les requêtes sur la base des mêmes équipes et de leurs rencontres. Les fonctions JavaScript se testent dans la page donnée, les requêtes SQL dans MySQL (phpMyAdmin). Barème sur 20 points.
Exercice 1 : le formulaire du tournoi (8 pts)
La page d'inscription au tournoi tournoi.html est donnée, reliée au fichier tournoi.js où s'écrivent les deux fonctions :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Tournoi inter-lycées</title>
</head>
<body>
<h1>Tournoi de football inter-lycées</h1>
<form id="inscription">
<label for="equipe">Ton équipe</label>
<select id="equipe">
<option>Les Aigles</option>
<option>Les Faucons</option>
<option>Les Lions</option>
<option>Les Dauphins</option>
</select>
<input type="checkbox" id="accord" onchange="activer()">
<label for="accord">J'accepte le règlement du tournoi</label>
<input type="button" id="envoyer" value="Envoyer" disabled>
<select id="langue" onchange="changerDrapeau()">
<option>Français</option>
<option>Arabe</option>
<option>Anglais</option>
</select>
<img id="drapeau" src="fr.png" alt="Drapeau">
</form>
<script src="tournoi.js"></script>
</body>
</html>
- 1) Écrire la fonction activer(), appelée quand la case change : le bouton envoyer reste désactivé (disabled) tant que la case accord n'est pas cochée, et devient actif quand elle l'est (4 pts).
- 2) Écrire la fonction changerDrapeau(), appelée quand la langue change : avec une structure switch sur le rang de l'option choisie (selectedIndex), l'image drapeau affiche fr.png pour Français, tn.png pour Arabe et en.png pour Anglais (4 pts).
Exercice 2 : le tournoi inter-lycées (12 pts)
Le tournoi de l'exercice 1 garde ses équipes (celles de la liste de la page d'inscription) et ses rencontres dans deux tables : equipe (id, nom, lycee, ville) et rencontre (num, #id_dom, #id_ext, buts_dom, buts_ext, date_r), où id_dom est l'équipe qui reçoit et id_ext l'équipe qui se déplace. La base est créée par ce script :
CREATE TABLE equipe (
id INT PRIMARY KEY,
nom VARCHAR(30) NOT NULL,
lycee VARCHAR(40) NOT NULL,
ville VARCHAR(20) NOT NULL
);
CREATE TABLE rencontre (
num INT PRIMARY KEY,
id_dom INT NOT NULL,
id_ext INT NOT NULL,
buts_dom INT NOT NULL,
buts_ext INT NOT NULL,
date_r DATE NOT NULL,
FOREIGN KEY (id_dom) REFERENCES equipe(id),
FOREIGN KEY (id_ext) REFERENCES equipe(id)
);
INSERT INTO equipe VALUES
(1, 'Les Aigles', 'Lycée pilote', 'Sfax'),
(2, 'Les Faucons', 'Lycée Ibn Khaldoun', 'Tunis'),
(3, 'Les Lions', 'Lycée 9 Avril', 'Sfax'),
(4, 'Les Dauphins', 'Lycée Bourguiba', 'Sousse');
INSERT INTO rencontre VALUES
(1, 1, 2, 3, 1, '2026-10-03'),
(2, 3, 4, 0, 0, '2026-10-04'),
(3, 2, 3, 2, 2, '2026-10-10'),
(4, 4, 1, 2, 1, '2026-10-11'),
(5, 1, 3, 2, 0, '2026-10-17');
- 1) Écrire la requête qui affiche, pour chaque rencontre dans l'ordre des dates, le nom de l'équipe qui reçoit, le nom de l'équipe qui se déplace et les buts de chacune (3 pts).
- 2) Écrire la requête qui affiche, pour chaque équipe qui a reçu, son nom et le total des buts qu'elle a marqués à domicile, du plus grand total au plus petit (à égalité, par ordre alphabétique) (3 pts).
- 3) Écrire la requête qui affiche, avec une sous-requête, les noms des équipes qui ont gagné au moins une rencontre à domicile, par ordre alphabétique (3 pts).
- 4) Écrire la requête qui affiche le numéro et la date des rencontres où il y a eu le plus de buts (en tout), par numéro croissant (3 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.
Les corrections gratuites de cet appareil ont déjà été utilisées, avec ce compte ou un autre : chaque appareil a droit à 3 corrections gratuites, quel que soit le nombre de comptes. Pour les autres corrections, il faut un abonnement. Voir les tarifs ou écrire sur WhatsApp.
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.
Toutes les corrections jusqu'au devoir de synthèse3 mois pour 20 TND, offre jusqu'au 30 novembre 2026 Envoyer à un parent pour qu'il paieSujet original écrit pour Mission Carthage, dans le format d'un devoir pratique d'informatique (4ème Sciences de l'informatique, technologies du web). Ce n'est pas un sujet officiel.
Tout le programme : Bac Sciences de l'informatique · Revoir le cours · Tous les devoirs