Un entier de 4 chiffres est dit valable, si ses trois derniers chiffres sont des multiples de son chiffre des milliers
Exemple :
L’entier 2648 est valable car son chiffre des milliers est 2 et il est suivi par les chiffres 6, 4 et 8 qui sont tous multiples de 2.
On se propose d’écrire un programme qui permet de lire un entier positif n composé de 4 chiffres puis d’afficher s’il est valable ou non.
Exemple 1 : Si n=2888 alors le programme affichera entier est valable.
Exemple 2 : Si n=2179 alors le programme affichera entier non valable (il est suivi du chiffre qui 1 n'est pas multiple de 2).
Pour déterminer si un entier de 4 chiffres est valable selon les critères donnés, on peut suivre l'algorithme suivant :
1- Lire l'entier à 4 chiffres : Supposons que l'entier est stocké dans une variable n
.
2- Extraire le chiffre des milliers : C'est le premier chiffre de n
, que l'on peut obtenir en effectuant une division entière par 1000.
3- Extraire les trois derniers chiffres : On peut obtenir chaque chiffre en utilisant la conversion entier chaîne.
Ensuite, vérifier si chacun des trois derniers chiffres est un multiple du chiffre des milliers. Si c'est le cas pour tous les chiffres, l'entier est valable; sinon, il ne l'est pas.
Exemples d'utilisation :
Pour n = 2888
:
Chiffre des milliers = 2
Chiffres à vérifier : 8, 8, 8
Tous les chiffres sont multiples de 2 → entier est valable
.
Pour n = 2179
:
Chiffre des milliers = 2
Chiffres à vérifier : 1, 7, 9
1 n'est pas multiple de 2 → entier non valable
.
Dans cet algorithme, On va utiliser une fonction nommée test_equilibre.
Algorithme du programme principal
1 2 3 4 5 6 7 8 9 |
Algorithme nombre_valable Debut n<-saisie() Si test_valable() alors Ecrire('cet entier est valable'') sinon Ecrire('cet entier est non valable') Finsi Fin |
Déclaration des objets
Objet | Type / Nature |
n | entier |
La fonction saisie
Cette fonction retourne un entier n formé de 4 chiffres saisi par l'utilisateur.
1 2 3 4 5 6 7 8 9 10 |
foncttion saisie() Début Ecrire('donner un entier > 0') lire (n) Tant que n<=0 faire Ecrire('donner un entier > 0') lire (n) Fin tant que retourner n Fin |
Déclaration des objets
Objet | Type / Nature |
n | entier |
La fonction test_valable
Cette fonction teste si un nombre est valable ou non et retourne une valeur booléenne.
1 2 3 4 5 6 7 8 9 |
Fonction test_valable(n) Début ch<-Convch(n) i<-1 Tant que (Valeur(ch[i]) mod Valeur(ch[0])=0 et i mod 2 =0) et (i<long(ch)-1): i<-i+1 Fin tant que retourner (Valeur(ch[i]) mod Valeur(ch[0])=0) Fin |
Déclaration des objets
Objet | Type / Nature |
i | entier |
ch | chaîne des caractères |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
def saisie(): n=int(input('donner n entre 1000 et 9999 ')) while n < 1000 or n >9999 : n=int(input('donner n entre 1000 et 9999 ')) return n def test_valable(n): ch=str(n) i=1 while ((int(ch[i]) % int(ch[0])==0) and (i< len(ch)-1)) : i=i+1 return (int(ch[i]) % int(ch[0])==0) #programme principal n=saisie() if (test_valable(n)) : print('cet entier est valable') else: print('cet entier est non valable') |
Exécution du programme
Pour créer une application en Python pour vérifier si un entier formé de 4 chiffres donné est nombre valable ou pas utilisant Qt Designer pour l'interface graphique, suivez ces étapes :
a- Ouvrez Qt Designer et créez un nouveau fichier de type Main Window.
b- Ajoutez ces widgets:
QLineEdit
nommé 'n' pour entrer un entier n .
QPushButton
nommé 'valable_bt' pour exécuter le module test_valable.
QLabel
nommé 'msg' pour afficher un message d'erreur en cas de n <1000 ou n>9999.
QLabel
nommé 'resultat_test' pour afficher un message contenant le résultat du test équilibre de l'entier.
Enregistrez le fichier avec l'extension .ui
, par exemple nombre_valable.ui
.
Voici un exemple de script Python qui utilise l'interface graphique générée par Qt Designer.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#importation des modules nécessaires from PyQt5.QtWidgets import QApplication from PyQt5 import uic application = QApplication([]) window = uic.loadUi("nombre_valable.ui") def test_valable() : n=int(window.n.text()) # recevoir la valeur du QLineEdit n if 1000<=n<=9999: ch=str(n) i=1 while ((int(ch[i]) % int(ch[0])==0) and (i< len(ch)-1)) : i=i+1 if (int(ch[i]) % int(ch[0])==0) : window.resultat_test.setText(str(n)+' est un nombre valable') else: window.resultat_test.setText(str(n)+' est un nombre non valable') else: window.msg.setText('Veuillez saisir n entre 1000 et 9999') # si on clique sur le automorphe_bt, la fonction test_equilibre est exécutée window.valable_bt.clicked.connect(test_valable) window.show() application.exec() |
Exécution du programme
Vous pouvez voir aussi :
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info