Mission Carthage Français

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

Sujet type bac pratique n°8 : filtrer les nombres premiers d'un fichier (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 premiers d'un fichier (20 pts)

Le fichier texte nombres.txt, placé dans le même dossier que le programme, contient au plus 100 entiers supérieurs ou égaux à 2, un par ligne. On veut ranger les nombres premiers de ce fichier, dans le même ordre, dans une matrice M de 20 lignes et 5 colonnes, ligne par ligne et 5 par ligne : le k-ième nombre premier trouvé (k à partir de 0) va dans la case M[k div 5][k mod 5].

On écrit ensuite la matrice dans un nouveau fichier premiers.txt, une ligne du fichier par ligne remplie de M, les nombres séparés par un espace (la dernière ligne peut en avoir moins de 5), puis on affiche ces lignes dans une liste avec le nombre de nombres premiers.

Exemple : si nombres.txt contient les lignes 2, 3, 5, 7, 11, 13 et 4, alors premiers.txt contient les lignes « 2 3 5 7 11 » et « 13 », la liste affiche ces deux lignes, et l'étiquette « Premiers : 6 ».

L'interface contient :

  • une étiquette avec le texte « Nombres premiers de nombres.txt »,
  • un bouton nommé btnFiltrer (QPushButton) avec le texte « Filtrer »,
  • une liste nommée lstPremiers (QListWidget) pour les nombres premiers,
  • une étiquette nommée lblRes (QLabel) pour leur nombre.

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 Premiers.py (1 pt).
  • 3) Dans ce programme, développer une fonction EstPremier(n) qui renvoie Vrai si l'entier n ≥ 2 est premier, Faux sinon (2 pts).
  • 4) Développer une fonction Filtrer(M) qui lit nombres.txt ligne par ligne, range chaque nombre premier dans la matrice M et renvoie le nombre de nombres premiers trouvés (4 pts).
  • 5) Développer une procédure Enregistrer(M, nb) qui écrit dans premiers.txt les nb nombres premiers rangés dans M, une ligne de M par ligne du fichier (4 pts).
  • 6) Développer un module Play, appelé par un clic sur le bouton btnFiltrer, qui appelle Filtrer puis Enregistrer, vide la liste lstPremiers, y ajoute les lignes de premiers.txt puis affiche « Premiers : … » dans lblRes (3 pts).
  • 7) Ajouter les instructions qui chargent l'interface, relient le bouton au module Play et affichent la fenêtre (3 pts).

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

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

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

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

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