Lycée Atef Chaieb
Algorithmique et programmation
Classe : 3 info 3
Hammamet
Devoir de contrôle n° 4
Date : Nom et prénom :………………………………………………………… Enseignant :
19/02/2025 Mr MONTASSER ISMAIL
Thèmes : Interface graphique – Algorithmes arithmétiques
Important : Créer dans le bureau un dossier portant votre nom et prénom. Enregistrer
périodiquement tous les fichiers solutions de ce sujet dans ce dossier.
Un nombre pernicieux (qui fait mal) est un nombre dont la somme des chiffres de son équivalent en
binaire est un nombre premier.
Exemple : 21 est un nombre pernicieux, sa conversion en binaire donne ‘10101’, 1+1+1=3 est un
nombre premier.
Pour recharger sa ligne téléphonique, une cliente gratte le panneau grisé de la carte de recharge
pour découvrir le code de recharge de 13 chiffres puis compose un code ayant la forme suivante :
*xxx*code de recharge#
On suppose qu’un code de recharge est valide lorsqu’il vérifie les conditions suivantes :
Il est composé de 13 chiffres.
Le nombre composé des trois premiers chiffres du code de recharge en commençant de
gauche à droite est un nombre pernicieux.
L’équivalent binaire du nombre composé des 5 chiffres suivants contient au moins 8 zéros.
Le nombre composé des 5 chiffres restants est divisible par le nombre formé des trois
premiers chiffres.
Exemple : 3614512146208 est un code de recharge valide. En effet :
361 45121 46208
361 est un nombre pernicieux son équivalent binaire est 101101001 dont la somme de
ses chiffres est 5 qui est un nombre premier.
En binaire, 45121 est représenté par 1011000001000001qui contient 11 zéros.
46208 est divisible par 361 et donne comme résultat 128.
1- Lancer le logiciel QtDesigner et créer l’interface suivante :
Cette interface contient :
Un label contenant le texte code de recharge.
Un label contenant le texte C=
Une zone de saisie qui contient le code de recharge.
Un bouton qui contient le texte vérifier.
Un bouton qui contient le texte annuler.
Un bouton qui contient le texte quitter.
Un label pour l’affichage du résultat.
Enregistrer votre interface sous le nom :’votrenom_prenom.ui’
2- Créer le fichier votrenom_prenom.py dans lequel vous allez développer :
-Une fonction pernicieux(x) testant si x est un nombre pernicieux.
-Une fonction nbzero(ch) permettant de compter le nombre de zéros dans une chaine binaire
(composée de 0 et de 1).
-Une fonction valide(code) permettant de tester la validité d’un code de recharge selon le
principe décrit précédemment.
Nb : vous pouvez développer d’autres fonctions en cas de besoin.
3- Compléter le programme principal en se référant à l’annexe et développer les fonctions
play(), effacer() et quitter() sachant que le clic sur le bouton vérifier fait appel à la fonction
play qui affichera les divers messages(voir exemples d’exécutions), le clic sur le bouton
annuler fait appel à la fonction effacer qui videra le contenu de la zone de saisie et du label
réservé à l’affichage du résultat et le clic sur le bouton quitter permettra de quitter
l’application.
Annexe :
from [Link] import QMessageBox, QApplication
from [Link] import loadUi
…………………………………………………………………………………………………………………….
app = QApplication([])
windows = loadUi('[Link]')
[Link](NomModule)
[Link]()
app.exec_()
Bon Courage
"La seule chose permettant au mal de triompher est l'inaction des hommes de bien."
Edmund Burke