Un nombre N est dit ondulant s’il est formé de trois chiffres au minimum et qui est de la forme ababab…avec a != b.
Exemples :
101, 2525, 56565 et 1717171 sont des nombres
12345 et 808008 ne sont pas des nombres ondulants
On se propose d'écrire un algorithme et un programme Python pour vérifier si un entier naturel N (N >= 100) est un nombre ondulant ou non,
Dans cet algorithme, On va utiliser 2 fonctions :
Algorithme du programme Principal
1 2 3 4 5 6 7 8 9 |
Algorithme nombre_ondulant Debut n<-saisie_entier() Si verif_ondulant(n) alors Ecrire(n+' est ondulant') Sinon Ecrire(n+" n'est pas ondulant") Fin si Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
n | entier |
La fonction saisie_entier
Cette fonction saisit un entier >= 100.
1 2 3 4 5 6 7 8 9 10 |
fonction saisie_entier():entier Début Ecrire("donner un entier >= 100) Lire(n) Tant que (n<100) faire Ecrire("donner un entier >= 100) Lire(n) Fin tant que retourner n Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
n | entier |
La fonction verif_ondulant
Cette fonction vérifie que si un nombre est ondulant ou non
1 2 3 4 5 6 7 8 9 10 11 12 13 |
fonction verif_ondulant(n:entier):booleen Début ch<-Convch(n) i<-0 Tant que (i<long(ch)-3) et (ch[i]=ch[i+2]) faire i<-i+1 Fin tant que Si (ch[i]=ch[i+2]) alors retourner Vrai Sinon retourner Faux Fin si 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 22 23 24 |
def saisie_entier(): n=int(input("donner un entier >= 100: ")) while (n<100): n=int(input("donner un entier >= 100: ")) return n def verif_ondulant(n): ch=str(n) i=0 while (i<len(ch)-3) and (ch[i]==ch[i+2]): i=i+1 if (ch[i]==ch[i+2]): return True else: return False #programme principal n=saisie_entier() if verif_ondulant(n) : print(str(n)+' est ondulant') else: print(str(n)+" n'est pas ondulant") |
Exécution du programme:
Pour créer une application en Python et Designer QT qui saisit un nombre >=10 et vérifie s'il est ondulant ou non , on va suivre 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 >=10.
QPushButton
nommé 'verifier_bt' pour vérifier si n est un nombre ondulant
QLabel
nommé 'msg' pour afficher des messages d'erreur et le résultat de la vérification du nombre.
Enregistrez le fichier avec l'extension .ui
, par exemple ondulant-interface.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 31 32 33 |
from PyQt5.uic import loadUi from PyQt5.QtWidgets import QApplication app = QApplication([]) windows = loadUi ("ondulant-interface.ui") def verif_ondulant(n): ch=str(n) i=0 while (i<len(ch)-3) and (ch[i]==ch[i+2]): i=i+1 if (ch[i]==ch[i+2]): return True else: return False def play(): windows.msg.clear() n = int(windows.n.text()) if n >= 100 : if verif_ondulant(n) : windows.msg.setText(str(n)+' est ondulant') else: windows.msg.setText(str(n)+" n'est pas ondulant") else: windows.msg.setText(" Veuillez introduire un nombre >=100 ") windows.verifier_bt.clicked.connect(play) windows.show() app.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