الرئيسية › الامتحانات › باكالوريا علوم الإعلامية
Devoir pratique STI n°2 : la boutique en ligne, l'espace client en JavaScript, les clients et leurs commandes en SQL
اكتب البرامج متاعك بـ Python ولا بالـ algorithme وثبّت فيهم في بلاصتهم، وبعد حلّ الإصلاح تمرين بتمرين.
Le travail se fait sur ordinateur. Les deux exercices portent sur la même boutique en ligne : l'exercice 1 écrit le fichier client.js de la page de l'espace client, l'exercice 2 les requêtes sur la base des mêmes clients et commandes. 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 : l'espace client (8 pts)
La boutique en ligne a la page client.html suivante, reliée au fichier client.js. Les commandes y sont rangées dans deux tableaux de même longueur, comme dans la table commande de l'exercice 2 : ids (le numéro du client de chaque commande) et montants (son montant en dinars).
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Espace client</title>
</head>
<body>
<h1>Espace client</h1>
<select id="client">
<option value="1">Ben Salah</option>
<option value="2">Kefi</option>
<option value="3">Haddad</option>
<option value="4">Chaabane</option>
<option value="5">Mejri</option>
</select>
<input type="button" id="voir" onclick="voir()" value="Voir">
<p id="bilan"></p>
<script>
var ids = [1, 2, 1, 3, 2, 4, 1, 3];
var montants = [120, 45, 80, 150, 60, 35, 90, 70];
function voir() {
var liste = document.getElementById("client");
var id = Number(liste.value);
var noms = ["Ben Salah", "Kefi", "Haddad", "Chaabane", "Mejri"];
var nom = noms[liste.selectedIndex];
document.getElementById("bilan").innerHTML = nom + " : " + totalClient(ids, montants, id) + " DT de commandes, la plus grosse " + plusGrosse(ids, montants, id) + " DT.";
}
</script>
<script src="client.js"></script>
</body>
</html>
La fonction voir() du bouton « Voir » est donnée dans la page ; elle utilise les deux fonctions à écrire dans client.js :
- 1) Écrire la fonction totalClient(ids, montants, id) qui renvoie la somme des montants des commandes du client id (0 s'il n'a pas commandé) (5 pts).
- 2) Écrire la fonction plusGrosse(ids, montants, id) qui renvoie le plus grand montant d'une commande du client id, ou 0 s'il n'a pas commandé (3 pts).
Exemples : avec ids = [1, 2, 1, 3, 2, 4, 1, 3] et montants = [120, 45, 80, 150, 60, 35, 90, 70], totalClient(ids, montants, 1) donne 290 et plusGrosse(ids, montants, 1) donne 120.
Exercice 2 : les clients et leurs commandes (12 pts)
La boutique de l'exercice 1 garde ses clients et leurs commandes dans deux tables : client (id, nom, ville) et commande (num, #id_client, date_cmd, montant), où id_client référence client(id) et le montant est en dinars. La base est créée par ce script :
CREATE TABLE client (
id INT PRIMARY KEY,
nom VARCHAR(30) NOT NULL,
ville VARCHAR(20) NOT NULL
);
CREATE TABLE commande (
num INT PRIMARY KEY,
id_client INT NOT NULL,
date_cmd DATE NOT NULL,
montant INT NOT NULL,
FOREIGN KEY (id_client) REFERENCES client(id)
);
INSERT INTO client VALUES (1, 'Ben Salah', 'Sousse'), (2, 'Kefi', 'Tunis'), (3, 'Haddad', 'Sousse'), (4, 'Chaabane', 'Sfax'), (5, 'Mejri', 'Tunis');
INSERT INTO commande VALUES
(1, 1, '2026-01-12', 120),
(2, 2, '2026-01-15', 45),
(3, 1, '2026-02-03', 80),
(4, 3, '2026-02-10', 150),
(5, 2, '2026-02-21', 60),
(6, 4, '2026-03-02', 35),
(7, 1, '2026-03-08', 90),
(8, 3, '2026-03-15', 70);
- 1) Écrire la requête qui affiche le nom du client et le montant des commandes des clients de Sousse, du plus grand montant au plus petit (3 pts).
- 2) Écrire la requête qui affiche, pour chaque client qui a commandé, son nom et son nombre de commandes, du plus grand nombre au plus petit (à égalité, par ordre alphabétique du nom) (3 pts).
- 3) Écrire la requête qui affiche, pour chaque ville, le montant total des commandes de ses clients, par ordre alphabétique de la ville (3 pts).
- 4) Écrire la requête qui affiche le nom et le montant total des commandes des clients qui ont commandé pour plus de 200 dinars en tout, par ordre alphabétique du nom (3 pts).
الإصلاح المفصّل
الإصلاح متاع الامتحان هذا للمشتركين. فيه التحليل، والـ algorithme بالنوطاسيون التونسية، والبرنامج Python المجرّب، والغلطات اللي ترجع برشا في كل تمرين. بحساب بلاش، تنجم تحلّ 3 إصلاحات تختارهم إنت.
ادخل لحسابك قبل: اعمل حساب ولا ادخل.
مازال عندك 0 إصلاح بلاش.
باش تحلّ الإصلاحات الأخرين لازمك اشتراك. شوف الأسعار ولا اطلب code على WhatsApp ولا Instagram ولا Facebook.
الإصلاحات اللي بلاش متاع الجهاز هذا تستعملو، بالحساب هذا ولا بحساب آخر: كل جهاز عندو 3 إصلاحات بلاش، مهما كان عدد الحسابات. للإصلاحات الأخرين لازمك اشتراك. شوف الأسعار ولا ابعثلنا على WhatsApp.
الموقع توّا في فترة test: يتحلّ بـ code. اطلب الـ code متاعك على WhatsApp ولا Instagram ولا TikTok، وبعد اكتبو في missioncarthage.tn.
الإصلاح هذا مازال ما تنشرش. ارجع قريب.
ما نجمناش نحمّلو الإصلاح. ثبّت في الكونكسيون وعاود جرّب.
كل الإصلاحات حتى الفرض التأليفي3 أشهر بـ 20 د، العرض حتى 30 نوفمبر 2026 ابعثها لبابا ولّا ماما يخلّصوموضوع أصلي كتبناه لـ Mission Carthage، على نفس الشكل متاع امتحانات القسم. الأستاذ متاعك يبقى هو المرجع.
البرنامج الكل: باكالوريا علوم الإعلامية · عاود اقرا الكور · الامتحانات الكل