Académique Documents
Professionnel Documents
Culture Documents
Réaliser une interface graphique (sous QtDesigner) contenant deux entrés a et b, et un résultat qui va
contenir la somme de a et b. et l’enregistrer sous le nom : somme.ui
Line Edit
Label
PushButton
Label (vide)
Lancer Thonny, puis écrire le programme (et l’enregistrer sous le nom : calcul.py) qui permet de calculer
la somme de deux entiers a et b , en utilisant l’interface graphique crée précédemment pour saisir a et
b et afficher le résultat.
NB : syntaxe générale pour un programme utilisant l’interface
graphique :
#les fonction
def Play() :
#partie données
#partie traitement
#partie résultat
#pp
app = QApplication([])
windows.show()
#bouton calculer
Problème N°2 Graphique
Le pgcd (plus grand commun diviseur) de plusieurs nombres décomposés en facteurs premiers, est égal au
produit de tous les facteurs premiers communs à ces nombres, chacun d'eux n'est pris qu'une seule fois, avec
son exposant le plus petit.
x=45 = 3×3×5 = 3²×5. y=15=3*5 alorss Le pgcd = 3×5 = 15.
1) Ecrire un code Python qui permet de calculer le plus grand communs diviseur de deux nombre x et y
2) Concevoir une interface graphique comme le modèle cité ci-dessous et l’enregistrer sous le nom
"PGCD.ui".
L’interface graphique présentée, comportant les éléments suivants :
Un label contenant le titre.
Un label demandant la saisie d’un nombre x.
Un label demandant la saisie d’un nombre y.
Une zone de saisie LineEditpermettant la saisie d’un nombre x.
Une zone de saisie LineEditpermettant la saisie d’un nombre y.
Un bouton nommé "PGCD".
Un TextEdit pour afficher le résultat trouvé.
3) Apporter les modifications nécessaires pour intégrer cette interface graphique dans votre programme tout
en exploitant l’annexe de l’exercice précédent et enregistrer votre travail sous le nom "PGCD.py".
Exemple d’exécution
Correction
from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QApplication
def pgcd():
a = int(win.a.text()())
b = int(win.b.text()())
mn = a
mx = b
if a > b:
mn = b
mx = a
p=1
f=2
while mn > 1:
if mn % f == 0:
mn = mn // f
if mx % f == 0:
mx = mx // f
p=p*f
else:
f=f+1
fen.res.setText(str(p))
app = QApplication([])
win = loadUi ("pgcd.ui")
win.show()
win.bt.clicked.connect(pgcd)
app.exec_()
Le principe du jeu consiste a calculerr Ie nombre de chance a partir du numéro de téléplione d’un client donné et
d’afficher le message “ Félicitatioiis, vous avez gagiié.” dans le cas ou ce nombre est premier ou le message
"Désolé, vows n ’avez pas gagné." dans le cas contraire.
Sachant que :
En e ffet, le nombre de chance est égale a 99 qui n’est pas un nombre premier.
Numéro téléphone 2 9 2 3 4 5 6 0
lndice 0 1 2 3 4 5 6 7
Fonction Chance (Ch : Chaine) : Chaine
DEBUT
S non
s s + valeur ( Ch [i] ) * i
Fin Pour
FinSi
FinSi
Retourner msg
FIN
Ci-apres, un algorithme de la fonction ”Chance” a exploiter pour résoudre Ie probleme pose.
La société a decide de créer l’interface graphique présentée ci-dessus, comportant les éléments suivants
Société Commerciale
Jouer
Travail demandé :
1) Concevoir une interface praphiqiie comme illustré ci-dessus et 1’enregistrer, dans votre dossier de travail,
sous le nom "Interface_Jeu".
2) lmplémenter en Python la fonction "Chance" dans ton programme et l’enregistrer sous Ie nom "Jeu0".
dans votre dossier de travail.
3) Déve lopper la fonction "Premier" permettant de verifier si un nombre, passé comme parametre, est
premier ou non puis is l’enregistrer dans votre dossier de travail sons le none "Jeu 1".
4) Dans Ie programme "Jeu1”, ajouter les instructions permettant :
• D’appeler l’ interface graphique intittllée "Interface_Jeu" en exploitant l’annexe ci-dessoiis.
• D’implémenter un module "Play", qui s’execute ñ la suite d’un clic sur le bouton "Jouer",
permettant de récupérer Ie numéro de telephone saisi puis d’exploiter la fonction "Chance" a fin
d’afficher le message retourné via un label de [’ interface "Interface_Jeu".
Annexe
.................................
...........................
app = QApplication([])
windows.show()
windows.Nom_Bouton.clicked.connect (Nom_Module)
app.exec ()
Exemples d’exécution :
Société Commerciale
Société Commerciale
Jouer
Jouer
Thonny
from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QApplication
def premier(n):
cond=True
if n <=1 :
cond= False
else:
for i in range(2,n):
if n % i==0:
cond= False
return cond
def chance(ch):
if not (ch.isdigit() and len(ch)==8 and ch[0] in ['2','4','5','9']):
msg='Vérifier le num de Tel !'
else:
msg="Désolé, vous n'avez pas gagné."
s=0
for i in range(len(ch)):
s=s+int(ch[i])*i
if premier(s):
msg='Félicitation, vous avez gagné.'
return msg
def play():
x= windows.txtTel.text() windows.lblMsg.setText(chance(x))
app=QApplication([])
windows=loadUi("interface_Jeu.ui")
windows.show()
windows.btJ.clicked.connect(play)
app.exec()