Un entier est dit distinct s’il est composé de chiffres distincts (différents).
Ecrire un programme Python qui permet de saisir un entier n (n>0), puis de vérifier et d’afficher si cet entier est distinct ou non.
Exemples :
- n=1273 est dit distinct car il est formé par les chiffres 1, 2,7 et 3 qui sont tous distincts, donc , le programme affichera : Cet entier est distinct.
- n=1565 est dit non distinct car il est formé par les chiffres 1, 5,6 et 5 qui ne sont pas tous distincts(le chiffre 5 se répète deux foi) donc , le programme affichera : Cet entier est non distinct.
Pour vérifier si un entier n est composé de chiffres distincts, nous pouvons suivre un algorithme structuré en plusieurs étapes. Voici le principe de cet algorithme :
1- Saisie de l'entier n:
Saisir l'entier n.
Vérifier que n est strictement positif (n > 0).
2- Conversion de l'entier en chaîne de caractères :
Convertir l'entier n en une chaîne de caractères pour faciliter l'analyse des chiffres.
3- Vérification de l'unicité des chiffres :
Parcourir chaque chiffre de la chaîne :
Si le chiffre n'est pas répété dans l'ensemble des chiffres qui composent l'entier n.
Sinon, sortir de la boucle.
4- Affichage du résultat :
Si tous les chiffres sont distincts, afficher "Cet entier est distinct".
Sinon, afficher "Cet entier est non distinct".
Dans cet algorithme, On va utiliser deux fonctions :
Algorithme du programme principal
1 2 3 4 5 6 7 8 9 |
Algorithme entier_distinct Debut n<-saisie() Si verif_distinct(n)alors Ecrire(n,' est un entier distinct') Sinon Ecrire(n,' est un entier non distinct') Fin |
Déclaration des objets
Objet | Type / Nature |
n | entier |
La fonction saisie
Cette fonction saisit un entier n >0.
1 2 3 4 5 6 7 8 9 10 |
fonction saisie(n) 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 verif_distinct
Cette fonction vérifie si un entier n est distinct ou non .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
fonction verif_distinct(n) Début ch<-Convch(n) i<-0 j<-1 Tant que (ch[i]!=ch[j]) et (i<long(ch)-2) faire Tant que (ch[j]!=ch[i]) et (j<long(ch)-1)faire j<-j+1 Fin tant que Si (ch[i]!=ch[j]) alors i<-i+1 j<-i+1 Fin si Fin tant que retourner ch[i]!=ch[j] Fin |
Déclaration des objets
Name | Age |
i | entier |
j | entier |
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 |
def saisie(): n=int(input('Donner un entier >0: ')) while n<=0 : n=int(input('Donner un entier >0: ')) return n def verif_distinct(n): ch=str(n) i=0 j=1 while (ch[i]!=ch[j]) and (i<len(ch)-2): while (ch[j]!=ch[i])and(j<len(ch)-1): j=j+1 if (ch[i]!=ch[j]): i=i+1 j=i+1 return (ch[i]!=ch[j]) # programme principal n= saisie() if verif_distinct(n): print(str(n)+' est un entier distinct') else: print(str(n)+' est un entier non distinct') |
Exécution du programme
Pour créer une application en Python pour vérifier si n est un entier distinct ou non en 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é 'test_distinct_bt' pour exécuter le module distinct_n .
QLabel
nommé 'msg' pour afficher un message d'erreur et le résultat du test de distinction d'un entier n > 0 .
Enregistrez le fichier avec l'extension .ui
, par exemple entier-distinct-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 34 |
from PyQt5.uic import loadUi from PyQt5 import QtCore, QtGui from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtGui, QtWidgets app = QApplication([]) windows = loadUi ("entier-distinct-interface.ui") def distinct_n() : n = int(windows.n.text()) ch = windows.n.text() if n>0 : i=0 j=1 while (ch[i]!=ch[j]) and (i<len(ch)-2): while (ch[j]!=ch[i])and(j<len(ch)-1): j=j+1 if (ch[i]!=ch[j]): i=i+1 j=i+1 if (ch[i]!=ch[j]): windows.msg.setText(ch+' est un entier distinct') else : windows.msg.setText(ch+' est un entier non distinct') else : windows.msg.setText('Donner n > 0') windows.test_distinct_bt.clicked.connect(distinct_n) 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