EXAMEN DU BACCALAURÉAT SESSION 2023
RÉPUBLIQUE TUNISIENNE
ÉPREUVE PRATIQUE
Matière : Algorithmique et Programmation
Ministère de l’Éducation
Section : Sciences de l’informatique
Coefficient de l’épreuve:1 Durée: 1h 30min
Le sujet comporte 2 pages numérotées de 1/2 à 2/2
Important :
1) Toutes les ressources se trouvent dans le dossier "Ressources" situé sur le disque C.
2) Il est demandé au candidat de :
• Créer, dans le dossier Bac2023 situé sur la racine du disque C, un dossier de travail portant son numéro d’inscription
et dans lequel il doit enregistrer, au fur et à mesure, tous les fichiers solution de ce sujet.
• Copier, dans son dossier de travail, le fichier "Algo.rar" situé dans "C:\Ressources", puis d’extraire son contenu, en
utilisant le mot de passe "nw626k", dans ce même dossier de travail.
• S’assurer que le contenu extrait est formé de deux fichiers "Interface_Royal.ui" et "Royal.py".
• Proposer une solution modulaire au problème posé.
• Vérifier à la fin de l’épreuve que tous les fichiers sont dans son dossier de travail.
Un nombre est dit Royal s’il est non premier et ses facteurs premiers sont distincts.
Exemples :
102 est un nombre Royal car 102 est non premier et ses facteurs premiers sont distincts (102=2*3*17)
390 est un nombre Royal car 390 est non premier et ses facteurs premiers sont distincts (390=2*3*5*13)
103 n’est pas un nombre Royal car 103 est un nombre premier.
104 n’est pas un nombre Royal car 104 est non premier mais ses facteurs premiers ne sont pas distincts.
(104=2*2*2*13)
On se propose de concevoir une interface graphique "Interface_Royal" permettant de créer et de remplir un
fichier d’enregistrements nommé "Royal.dat" par tous les nombres "Royal" de l’intervalle [n,m]
(avec 100≤n<m≤1000). Chaque enregistrement du fichier "Royal.dat" est formé par les champs suivants :
➢ R : un nombre Royal de l’intervalle [n,m]
➢ Fact:Une chaîne de caractère contenant les facteurs premiers du nombre Royal de l’intervalle [n,m] (avec
100≤n<m≤1000).
L’interface graphique "Interface_Royal" comme la montre la Figure1 ci-après, contient les éléments suivants :
Un label contenant le texte "Donner la valeur de n :".
Une zone de saisie pour saisir la valeur de n.
Un label contenant le texte "Donner la valeur de
m :".
Une zone de saisie pour saisir la valeur de m.
Un bouton intitulé "Remplir Royal".
Un bouton intitulé "Afficher Royal".
Une table widget contenant deux colonnes :
"Nombre Royal" et "Facteurs premiers" pour
afficher le contenu du fichier "Royal.dat".
Figure 1 : Interface_Royal
1/2
Travail demandé :
1) Ouvrir le fichier "Interface_Royal.ui" situé dans le dossier de travail et compléter l’interface graphique par
les éléments manquants.
2) Ouvrir le fichier "Royal.py" situé dans le dossier de travail et y apporter les modifications suivantes :
• Développer le module NbRoyal qui s’exécute suite à un clic sur le bouton "Remplir Royal" et qui
permet:
◦ d’afficher un message d’alerte (QMessagebox) indiquant une anomalie dans la saisie si une des
contraintes de saisie n’est pas respectée (voir les imprimes écran ci-dessous).
◦ de remplir le fichier "Royal.dat" par tous les nombres Royal compris entre n et m dans le cas
contraire.
• Développer le module Afficher qui s’exécute suite à un clic sur le bouton "Afficher Royal" et qui permet
d’afficher dans la table widget le contenu du fichier "Royal.dat".
N.B.
On pourra utiliser les méthodes suivantes :
setRowCount(nbrelignes) / insertRow(numligne) / setItem(numligne, numcolonne, QtableWidgetItem("valeur"))
• Compléter les instructions de la partie exploitation de l’interface graphique "Interface_Royal.ui" par les
informations nécessaires à l’appel de l’interface et aux différents modules développés.
Ci-dessous quelques captures d’écran montrant des exemples d’exécutions :
Figure 2: Message d’erreur (Un champ de saisie au moins est vide)
Figure 3: Message d’erreur (n ou m ne vérifie pas la contrainte 100≤n<m≤1000 )
Figure 4: affichage du contenu du fichier "Royal.dat"
pour n=102 et m=500
2/2