Vous êtes sur la page 1sur 5

TP3 

:
Sur les billets d’avion d’une Campanie aérienne, figure un code de 11 chiffres précédés d’une lettre
majuscule. Exemple U19586900462. Pour vérifier l’authenticité d’un billet, on remplace la lettre du
code par son rang alphabétique pour obtenir un nombre de 12 ou de 13 chiffres. Si le reste de la
division par 9 de la somme des chiffres de ce nombre est égale à 8, ce billet est authentique, sinon
c’est un faux billet.

Exemple : Le billet ayant pour code "U19586900462" est authentique.


En effet : - La lettre "U" a pour rang alphabétique 21.
- Le nombre formé sera : "2119586900462".
- La somme des chiffres de ce nombre est 2+1+1+9+5+8+6+9+0+0+4+6+2 =53.
- Le reste de la division de 53 par 9 est égale à 8.

Pour réaliser cette tâche, on doit créer une interface graphique (présentée ci-dessous), comportant
les éléments suivants :
▪ Un label demandant la saisie d’un code.
▪ Une zone de saisie (QlineEdit) permettant la saisie du code.
▪ Un bouton (QPushButton) vérifier.
▪ Un label pour afficher le message.

Travail demandé :
1) Concevoir une interface graphique comme illustré ci-dessus et l’enregistrer, dans votre dossier
de travail, sous le nom "authentique.ui".
2) Développer la fonction "vérif" (qui vérifie que la donnée à saisir est une chaine de 11 chiffres
précédés d’une lettre majuscule) dans un programme et l’enregistrer sous le nom "
compagnie.py ", dans votre dossier de travail.
3) Développer la fonction "authentique" permettant de vérifier si le code, passé comme paramètre,
est authentique ou non, selon le principe décrit précédemment dans un programme et l’enregistrer
dans le même fichier "compagnie.py", dans votre dossier de travail.
4) Dans le programme " compagnie.py ", ajouter les instructions permettant :
- D’appeler l’interface graphique intitulée "authentique.ui".
- Développer un module "Play", qui s’exécute à la suite d’un clic sur le bouton "verifier",
permettant de récupérer le code saisi puis d’exploiter la fonction "authentique" afin d’afficher le
message retourné via un label de l’interface "authentique".

Exemple d’exécution :
from PyQt5.QtWidgets import *
from PyQt5.uic import *
def verif(ch):
i=1
while i<=len(ch)-1 and '0'<=ch[i]<='9':
i=i+1
return i>len(ch)-1 and 'A'<=ch[0]<='Z' and len(ch)==12

def authentique(ch):
if verif(ch):
aux=str(ord(ch[0])-64)
ch=ch[2:len(ch)-1]
ch=aux+ch
s=0
for i in range(len(ch)-1):
d=int(ch[i])
s=s+d
if s%9==8:
msg="authentique"
else: msg="non authen"
else: msg="erreur!!!"
return msg
def play():
code=p.x.text()
p.res.setText(authentique(code))
app=QApplication([])
p=loadUi("authentique.ui")
p.bt.clicked.connect(play)
p.show()
app.exec_()
TP3 :

Pour réaliser cette tâche, on doit créer une interface graphique (présentée ci-dessous), comportant
les éléments suivants :

▪ Un label demandant un mot.

▪ Une zone de saisie (QlineEdit) permettant la saisie d’un mot.

▪ Un bouton (QPushButton) " vérifier ".

▪ Un label pour afficher le message.

Travail demandé :

1) Concevoir une interface graphique comme illustré ci-dessus et


l’enregistrer, dans votre dossier de travail, sous le nom "zigzag.ui".
2) Développer la fonction "vérif" qui vérifie que la donnée à saisir est une chaine de lettres
majuscules.
3) Développer la fonction "zigzag" permettant de vérifier si le mot est zigzag ou non, selon le
principe décrit précédemment dans un programme et l’enregistrer dans le même fichier
"zigzag.py", dans votre dossier de travail.
4) Dans le programme " zigzag.py ", ajouter les instructions permettant :
- D’appeler l’interface graphique intitulée "zigzag.ui".
- Développer un module "Play", qui s’exécute à la suite d’un clic sur le bouton "verifier",
permettant de récupérer le mot saisi puis d’exploiter la fonction "zigzag" afin d’afficher le message
retourné via un label de l’interface "zigzag".
Exemple d’exécution :
from PyQt5.QtWidgets import*
from PyQt5.uic import *
def verif(ch):
i=0
while i<=len(ch)-1 and 'A'<=ch[i]<='Z':
i=i+1
return i>len(ch)-1
def zigzag(ch):
i=0
while (ch[i]>ch[i+1]) and (ch[i+1]<ch[i+2]) or (ch[i]<ch[i+1]) and (ch[i+1]>ch[i+2])and (i<len(ch)-4 ):
i=i+2
return i>=len(ch)-4
def play():
mot=w.m.text()
if verif(mot) :
if zigzag(mot):
w.res.setText('mot est zigzag')
else :
w.res.setText('mot non zigzag')
else:
w.res.setText('mot incorrect')
app=QApplication([])
w=loadUi("zigzag.ui")
w.bt.clicked.connect(play)
w.show()
app.exec_()

Vous aimerez peut-être aussi