Mission Carthage Français

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

Sujet type bac pratique n°2 : les nombres de Smith et la matrice des facteurs (Qt Designer et PyQt5)

باكالوريا علوم الإعلامية، الثلاثي الأول. المدّة: ساعة ونص. على 20 نقطة.

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

Comme à l'épreuve pratique : l'interface est dessinée dans Qt Designer et enregistrée sous le nom interface.ui, le programme Python la charge avec loadUi. Les noms des objets imposés doivent être respectés. Tout se fait dans l'Atelier Qt de Mission Carthage, sur téléphone comme sur PC. Barème sur 20 points.

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

Sujet : les nombres de Smith (20 pts)

Un entier N qui n'est pas premier est un nombre de Smith si la somme de ses chiffres est égale à la somme des chiffres de tous ses facteurs premiers, chaque facteur étant compté autant de fois qu'il apparaît dans la décomposition.

Exemple : 22 = 2 × 11. La somme des chiffres de 22 est 2 + 2 = 4, celle des facteurs est 2 + (1 + 1) = 4 : 22 est un nombre de Smith. 27 = 3 × 3 × 3 : 2 + 7 = 9 = 3 + 3 + 3, 27 est un nombre de Smith. 25 = 5 × 5 : 2 + 5 = 7 et 5 + 5 = 10, 25 n'en est pas un. Un nombre premier comme 23 n'est jamais un nombre de Smith.

La décomposition de n est rangée dans une matrice F de 2 lignes et 6 colonnes : F[0][k] est le k-ième facteur premier distinct de n (dans l'ordre croissant) et F[1][k] son exposant. Par exemple, 666 = 2 × 3 × 3 × 37 donne les colonnes (2, 1), (3, 2) et (37, 1). Un entier inférieur à 100000 a au plus 6 facteurs premiers distincts.

On veut une application qui permet de saisir un entier N (4 ≤ N ≤ 99999) et d'afficher s'il est un nombre de Smith.

L'interface contient :

  • une étiquette avec le texte « Saisir un entier N : »,
  • une zone de saisie nommée txtN (QLineEdit),
  • un bouton nommé btnVerifier (QPushButton) avec le texte « Vérifier »,
  • une étiquette nommée lblMsg (QLabel) pour afficher le message.

Travail demandé

  • 1) Concevoir l'interface graphique décrite ci-dessus et l'enregistrer sous le nom interface.ui (3 pts).
  • 2) Créer un programme Python et l'enregistrer sous le nom Smith.py (1 pt).
  • 3) Dans ce programme, développer une fonction récursive SommeChiffres(n) qui renvoie la somme des chiffres de l'entier n (2 pts).
  • 4) Développer une fonction Decomposer(n, F) qui range la décomposition de n (n ≥ 2) dans la matrice F et renvoie le nombre de facteurs premiers distincts (3 pts).
  • 5) Développer une fonction SommeFacteurs(F, nb) qui renvoie la somme des chiffres des nb facteurs premiers rangés dans F, chaque facteur compté autant de fois que son exposant (2 pts).
  • 6) Développer une fonction Smith(n) qui décompose n dans une matrice F, puis renvoie Vrai si n n'est pas premier et si SommeChiffres(n) = SommeFacteurs(F, nb), Faux sinon (2 pts).
  • 7) Développer un module Play, appelé par un clic sur le bouton btnVerifier, qui : affiche « Veuillez saisir un entier entre 4 et 99999 » si le texte saisi n'est pas un entier compris entre 4 et 99999 ; sinon affiche « N est un nombre de Smith » ou « N n'est pas un nombre de Smith », où N est remplacé par la valeur saisie (4 pts).
  • 8) Ajouter les instructions qui chargent l'interface, relient le bouton au module Play et affichent la fenêtre (3 pts).

Exemples : pour 22, l'étiquette affiche « 22 est un nombre de Smith » ; pour 25, « 25 n'est pas un nombre de Smith » ; pour 3 ou pour abc, « Veuillez saisir un entier entre 4 et 99999 ».

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

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

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

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

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