Mission Carthage العربية
اقرا الصفحة هذي بالتونسي

Accueil › Devoirs › Bac SI

Devoir pratique STI n°5 : l'agence de voyages, la page des prix triés en JavaScript et les réservations en SQL

Bac Sciences de l'informatique, 2ème trimestre. Durée : 1 heure. Sur 20 points.

É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 de l'agence Voyages du Sud : l'exercice 1 écrit le fichier prix.js de sa page des prix, l'exercice 2 les requêtes sur la base des mêmes hôtels et de leurs réservations. Les fonctions JavaScript se testent dans la console du navigateur et dans la page, les requêtes SQL dans MySQL (phpMyAdmin). Barème sur 20 points.

Exercice 1 : trier et trouver la médiane (8 pts)

La page prix.html suivante, reliée au fichier prix.js, affiche les prix d'une nuit dans les hôtels de l'agence, du moins cher au plus cher, et leur prix médian, avec la fonction montrer() donnée dans la page. Les deux fonctions qu'elle utilise sont écrites dans prix.js, en JavaScript sans utiliser la méthode sort.

<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>Nos prix</title>
</head>
<body>
  <h1>Agence Voyages du Sud : nos prix</h1>
  <input type="button" id="trier" onclick="montrer()" value="Du moins cher au plus cher">
  <p id="liste"></p>
  <p id="milieu"></p>
  <script>
    var prix = [180, 95, 150, 140, 80, 120];
    function montrer() {
      var t = classer(prix);
      var texte = t[0] + " DT";
      for (var i = 1; i < t.length; i++) {
        texte = texte + ", " + t[i] + " DT";
      }
      document.getElementById("liste").innerHTML = texte;
      document.getElementById("milieu").innerHTML = "Prix médian : " + mediane(prix) + " DT";
    }
  </script>
  <script src="prix.js"></script>
</body>
</html>

Exemples : classer([150, 95, 180]) donne [95, 150, 180] ; mediane([150, 95, 180]) donne 150 et mediane([80, 120, 150, 95]) donne 107.5.

Exercice 2 : les réservations d'hôtels (12 pts)

L'agence de l'exercice 1 garde ses hôtels (ceux de la page prix.html), ses clients et leurs réservations dans trois tables : hotel (id, nom, ville, prix_nuit), client (id, nom) et reservation (id, #id_hotel, #id_client, nuits). Le prix d'une nuit est en dinars. La base est créée par ce script :

CREATE TABLE hotel (
  id INT PRIMARY KEY,
  nom VARCHAR(40) NOT NULL,
  ville VARCHAR(20) NOT NULL,
  prix_nuit INT NOT NULL
);
CREATE TABLE client (
  id INT PRIMARY KEY,
  nom VARCHAR(30) NOT NULL
);
CREATE TABLE reservation (
  id INT PRIMARY KEY,
  id_hotel INT NOT NULL,
  id_client INT NOT NULL,
  nuits INT NOT NULL,
  FOREIGN KEY (id_hotel) REFERENCES hotel(id),
  FOREIGN KEY (id_client) REFERENCES client(id)
);
INSERT INTO hotel VALUES
  (1, 'Dar El Medina', 'Tunis', 180),
  (2, 'Les Palmiers', 'Sousse', 95),
  (3, 'Yasmine Plage', 'Hammamet', 150),
  (4, 'Oasis Bleue', 'Djerba', 140),
  (5, 'Le Caravansérail', 'Tozeur', 80),
  (6, 'Dar Hammamet', 'Hammamet', 120);
INSERT INTO client VALUES (1, 'Amri'), (2, 'Ben Ali'), (3, 'Gharbi'), (4, 'Jaziri'), (5, 'Mansour');
INSERT INTO reservation VALUES (1, 3, 1, 4), (2, 1, 2, 2), (3, 4, 1, 3), (4, 6, 3, 5), (5, 3, 4, 2), (6, 2, 2, 6), (7, 1, 3, 1);

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.

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 paie

Sujet 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