Vous êtes sur la page 1sur 3

Niveau 

: 4ème Maths

Activité3
(Interfaces Graphiques)
Important :
1. Une solution modulaire au problème posé est exigée.
2. Dans le répertoire Bac2023, créez un dossier de travail ayant comme nom votre
« activité3  » et dans lequel vous devez enregistrer, au fur et à mesure, tous les fichiers
solution à ce sujet.

1) Pour vérifier si un entier positif est divisible par 7 on applique la règle de divisibilité
suivante :
 Multiplier le chiffre de gauche par 3 et l’ajouter au chiffre suivant.
 Remplacer les deux premiers chiffres de l’entier x par le résultat trouvé.
 Répéter les actions précédentes jusqu’à ce que le résultat soit un chiffre.
 Si le résultat obtenu est 7 alors l’entier x est divisible par 7.
Exemple :
x=364 3 * 3 + 6 =15 x devient 154
1*3+5=8 x devient 84
8 * 3 + 4 = 28 x devient 28
2 * 3 + 8 = 14 x devient 14
1*3+4=7 x devient 7 Donc 364 est divisible par 7
2) Pour vérifier si un entier positif est divisible par 11 on applique la règle de divisibilité
suivante :
 Un nombre est divisible par 11 si la différence en valeur absolue entre la somme des
chiffres de rang pair et la somme des chiffres de rang impair soit divisible par 11.
Exemple :
75219 n’est pas divisible par 11 car abs((7+2+9) –(5+1) )=12 n’est pas divisible par 11
8281801 est divisible par 11 car abs((8+8+8+1)-(2+1+0))=22 est divisible par 11
3916 est divisible par 11 car abs((3+1)-(9+6))=11 est divisible par 11
Pour vérifier si un entier x >9 est divisible par 7 ou par 11, on se propose de concevoir
une interface graphique contenant les éléments suivants :
▪ Un label contenant le texte : "Divisibilité par 7 et par 11 "
▪ Un label demandant la saisie d’un nombre "Introduire un entier >9 : "
▪ Une zone de saisie permettant la saisie de l’entier x
▪ Un bouton intitulé "DIV7"
▪ Un bouton intitulé "DIV8"
▪ Un label pour afficher le message approprié

1
Niveau : 4ème Maths

Travail demandé :
1) Concevoir une interface graphique comme illustrée ci-dessus et l’enregistrer, dans
votre dossier de travail, sous le nom "fenetre".
2) Créer un programme Python et l’enregistrer, dans votre dossier de travail, sous le nom
"div7et11".
3) Développer, dans le programme "div7et11", une fonction div_7(x) qui permet de
vérifier si un entier x>9 est divisible par 7 en respectant la règle de divisibilité décrite
ci-dessus
4) Développer, dans le programme "div7et11", une fonction div_11(x) qui permet de
vérifier si un entier x>9 est divisible par 11 en respectant la règle de divisibilité décrite
ci-dessus
5) Dans le programme "div7et11":
• Ajouter les instructions permettant d’appeler l’interface graphique intitulée
"Interface" en exploitant l’annexe de l’activité 2.
• Développer un module "verifier7", qui s’exécute suite à un clic sur le bouton
"DIV7", permettant de récupérer l’entier x saisi, puis d’exploiter la fonction
"div_7" afin d’afficher le message adéquat via le label dédié à l’affichage de
l’interface "Interface".
• Développer un module "verifier11", qui s’exécute suite à un clic sur le bouton
"DIV11", permettant de récupérer l’entier x saisi, puis d’exploiter la fonction
"div_11" afin d’afficher le message adéquat via le label dédié à l’affichage de
l’interface "Interface".
N.B. : l’affichage du message doit être conforme aux exemples d’exécution suivants :

2
Niveau : 4ème Maths

Corrigé :
from PyQt5.uic import*
from PyQt5.QtWidgets import*
def div_7(x):
while len(x)>1:
x=str(int(x[0])*3+int(x[1]))+x[2:]
return int(x)%7==0
def verifier7():
x=w.x.text()
if not x.isdecimal() or int(x)<=9 :
msg="Veuillez introduire un entier>9"
w.x.clear()
elif div_7(x):
msg=x +" est divisible par 7"
else:
msg=x +" est non divisible par 7"
w.res.setText(msg)
def div_11(ch):
s1=0
s2=0
for i in range(len(ch)):
if i%2==0:
s1=s1+int(ch[i])
else:
s2=s2+int(ch[i])
return abs(s1-s2)%11==0
def verifier11():
x=w.x.text()
if not x.isdecimal() or int(x)<=9 :
msg="Veuillez introduire un entier>9"
w.x.clear()
elif div_11(x):
msg=x +" est divisible par 11"
else:
msg=x +" est non divisible par 11"
w.res.setText(msg)
#pp
app = QApplication([])
w= loadUi ("fenetre.ui")
w.show()
w.b1.clicked.connect(verifier7)
w.b2.clicked.connect(verifier11)
app.exec_()

Vous aimerez peut-être aussi