Ecrire un programme Python permettant de réaliser les traitements suivants:
- Saisir un Nombre N strictement Positif
- Vérifier si ce Nombre est Equilibré ou Non un Nombre est dit EQUILIBRE si chacun de ses chiffres a la même parité que la position qu’il occupe
Exemple :
6743 est un nombre équilibre (6 à la position 0, 7 à la position 1,4 à la position 2 et 3 à la position 3)
5469 est un nombre non équilibré ( 5 et sa position 0 n’ont pas la même parité)
Pour déterminer si un nombre est "équilibré" selon la définition donnée, on peut suivre un algorithme simple. Voici les étapes détaillées :
1- Saisie du Nombre : Commencez par saisir un nombre entier N strictement positif.
2- Conversion en Chaîne : Convertissez le nombre N en une chaîne de caractères pour faciliter l'accès à chaque chiffre individuellement.
3- Vérification de Parité :
Parcourez chaque chiffre du nombre, en commençant par l'indice 0.
Pour chaque chiffre, vérifiez si la parité du chiffre (pair ou impair) correspond à la parité de sa position (indice dans la chaîne).
- Si le chiffre est pair, l'indice doit être pair.
- Si le chiffre est impair, l'indice doit être impair.
4- Résultat :
- Si toutes les paires (chiffre, indice) respectent la condition de parité, alors le nombre est "équilibré".
- Sinon, le nombre n'est pas "équilibré".
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_equilibre Debut n<-saisie() Si test_equilbre() alors Ecrire(n+' est un nombre equilbre') sinon Ecrire(n+' est un nombre non equilbre') Finsi Fin |
Déclaration des objets
Objet | Type / Nature |
n | entier |
La fonction saisie
Cette fonction retourne un entier n > 0 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_equilibre
Cette fonction teste si un nombre est équilibre ou non.
1 2 3 4 5 6 7 8 9 |
Fonction test_automorphe(n) Début ch<-Convch(n) i<-0 Tant que ((Valeur(ch[i]) mod 2=0 et i mod 2 =0) ou (Valuer(ch[i]) mod 2 != 0 et i mod 2 !=0)) et (i<long(ch)-1): i<-i+1 Fin tant que retourner (Valeur(ch[i]) mod 2=0 et i mod 2 =0) ou (Valuer(ch[i]) mod 2 != 0 et i mod 2 !=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 |
def saisie() : n=int(input("donner un entier > 0 ")) while(n<0) : n=int(input("donner un entier > 0 ")) return n def test_equilibre(n) : ch=str(n) i=0 while ((int(ch[i]) % 2==0 and i % 2 ==0) or (int(ch[i]) % 2 != 0 and i % 2 !=0)) and (i<len(ch)-1): i=i+1 return (int(ch[i]) % 2==0 and i % 2 ==0) or (int(ch[i]) % 2!=0 and i % 2 !=0) #programme principal n=saisie() if test_equilibre(n) : print(str(n)+' est un nombre equilibre') else: print(str(n)+' est un nombre non equilibre') |
Exécution du programme
Pour créer une application en Python pour vérifier si un entier >0 donné est nombre équilibré 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é 'equilibre_bt' pour exécuter le module test_equilibre.
QLabel
nommé 'msg' pour afficher un message d'erreur en cas de n <=0.
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_equilibre.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 |
#importation des modules nécessaires from PyQt5.QtWidgets import QApplication from PyQt5 import uic application = QApplication([]) window = uic.loadUi("nombre_equilibre.ui") def test_equilibre() : n=int(window.n.text()) # recevoir la valeur du QLineEdit n if n>0: ch=str(n) i=0 while ((int(ch[i]) % 2==0 and i % 2 ==0) or (int(ch[i]) % 2 != 0 and i % 2 !=0)) and (i<len(ch)-1): i=i+1 if (int(ch[i]) % 2==0 and i % 2 ==0) or (int(ch[i]) % 2!=0 and i % 2 !=0) : window.resultat_test.setText(str(n)+' est un nombre equilibre') else: window.resultat_test.setText(str(n)+' est un nombre non equilibre') else: window.msg.setText('Veuillez saisir n>0') # si on clique sur le automorphe_bt, la fonction test_equilibre est exécutée window.equilibre_bt.clicked.connect(test_equilibre) 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