Mission Carthage Français

الرئيسية › الامتحانات › باكالوريا رياضيات وعلوم وتقنية

Devoir de synthèse n°2 : clé de Luhn, application Qt de classement des notes

باكالوريا رياضيات وعلوم تجريبية وتقنية، الثلاثي الثاني. المدّة: ساعتين. على 20 نقطة.

اكتب البرامج متاعك بـ Python ولا بالـ algorithme وثبّت فيهم في بلاصتهم، وبعد حلّ الإصلاح تمرين بتمرين.

Les algorithmes s'écrivent en notation algorithmique, les programmes en Python. Pour l'exercice 2, l'interface est dessinée dans Qt Designer et enregistrée sous le nom interface.ui. Barème sur 20 points.

الموضوع مكتوب بالفرنسي، كيما في القسم.

Exercice 1 : la clé de Luhn (7 pts)

Les numéros de cartes bancaires contiennent un chiffre de contrôle qui permet de détecter une faute de frappe. On vérifie un numéro avec l'algorithme de Luhn :

  • en partant du dernier chiffre (à droite), on garde le 1er chiffre, on double le 2e, on garde le 3e, on double le 4e, et ainsi de suite ;
  • quand un chiffre doublé dépasse 9, on lui retire 9 (par exemple 7 × 2 = 14 devient 5) ;
  • on fait la somme de tous les chiffres obtenus : le numéro est valide si cette somme est un multiple de 10.

Exemple : 79927398713. De droite à gauche : 3, 1×2 = 2, 7, 8×2 = 16 → 7, 9, 3×2 = 6, 7, 2×2 = 4, 9, 9×2 = 18 → 9, 7. Somme = 3 + 2 + 7 + 7 + 9 + 6 + 7 + 4 + 9 + 9 + 7 = 70 : le numéro est valide.

  • 1) Écrire la fonction Chiffres(ch) qui renvoie Vrai si ch est formée uniquement de chiffres et contient entre 8 et 16 caractères (1,5 pt).
  • 2) Écrire la fonction SommeLuhn(ch) qui renvoie la somme calculée par l'algorithme de Luhn (3,5 pts).
  • 3) Écrire le programme qui lit un numéro (saisie contrôlée avec Chiffres) et affiche la somme puis « Numéro valide » ou « Numéro invalide » (2 pts).

Pour 79927398713, le programme affiche :

Somme : 70
Numéro valide

Exercice 2 : application Qt de classement des notes (13 pts)

On veut une application qui reçoit les notes d'une classe, séparées par des points-virgules (par exemple 12;15.5;8), et affiche les notes classées de la plus haute à la plus basse, la moyenne et le nombre d'admis (note ≥ 10).

L'interface contient :

  • une zone de saisie txtNotes (QLineEdit) et un bouton btnClasser (QPushButton) « Classer » ;
  • une liste lstNotes (QListWidget) qui reçoit les notes classées, une par ligne ;
  • deux étiquettes lblMoy et lblAdmis (QLabel).
  • 1) Concevoir l'interface et l'enregistrer sous le nom interface.ui (3 pts).
  • 2) Écrire la fonction NoteValide(ch) qui renvoie Vrai si le texte ch représente un nombre entre 0 et 20 (2 pts).
  • 3) Écrire la procédure TriDecroissant(T, n), par sélection (3 pts).
  • 4) Écrire le module Play, appelé par un clic sur btnClasser : il vide la liste ; si l'une des notes n'est pas valide, il affiche « Note invalide : x » dans lblMoy (x étant le texte fautif) et vide lblAdmis ; sinon il remplit la liste et affiche « Moyenne : m » (arrondie à 2 chiffres) et « Admis : k / n » (4 pts).
  • 5) Ajouter les instructions qui chargent l'interface, relient le bouton et affichent la fenêtre (1 pt).

Exemple : pour 12;15.5;8, la liste affiche 15.5, 12.0 et 8.0, puis « Moyenne : 11.83 » et « Admis : 2 / 3 ».

الإصلاح المفصّل

الإصلاح متاع الامتحان هذا للمشتركين. فيه التحليل، والـ algorithme بالنوطاسيون التونسية، والبرنامج Python المجرّب، والغلطات اللي ترجع برشا في كل تمرين. بحساب بلاش، تنجم تحلّ 3 إصلاحات تختارهم إنت.

كل الإصلاحات حتى الفرض التأليفي3 أشهر بـ 20 د، العرض حتى 30 نوفمبر 2026 ابعثها لبابا ولّا ماما يخلّصو

موضوع أصلي كتبناه لـ Mission Carthage، على نفس الشكل متاع امتحانات القسم. الأستاذ متاعك يبقى هو المرجع.

البرنامج الكل: باكالوريا رياضيات وعلوم تجريبية وتقنية · عاود اقرا الكور · الامتحانات الكل