Deux entiers N1 et N2 sont dits frères si chaque chiffre de N1 apparaît au moins une fois dans N2 et inversement.
Ecrire un programme Python qui saisit 2 entiers N1 et N2 strictement positifs, vérifie et affiche s’ils sont frères ou non.
Exemples :
Si N1=1164 et N2=614 alors le programme affichera : N1 et N2 sont frères.
Si N1=905 et N2=9059 alors le programme affichera : N1 et N2 sont frères.
Si N1=405 et N2=554 alors le programme affichera : N1 et N2 ne sont pas frères.
1- Saisir les deux entiers positifs N1 et N2.
2- Convertir N1 et N2 en chaînes de caractères CH1 et CH2 afin de pouvoir manipuler chaque chiffre individuellement.
3- Vérifier si chaque caractère de CH1 existe dans CH2
4- Si tous les caractères de CH1 existent dans CH2 , afficher que N1 et N2 sont frères.
5- Sinon, afficher qu'ils ne sont pas frères.
Dans cet algorithme, On va utiliser 3 fonctions :
Algorithme du programme Principal
1 2 3 4 5 6 7 8 9 10 |
Algorithme entiers_freres Debut n1=saisie() n2=saisie() Si (test_frere(n1,n2)) alors Ecrire('n1 et n2 sont freres') Sinon Ecrire('n1 et n2 ne sont pas freres') Fin si Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
n1 | entier |
n2 | entier |
La fonction saisie
Cette fonction saisit un entier > 0.
1 2 3 4 5 6 7 8 9 10 |
fonction saisie():entier 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_frere
Cette fonction vérifie si deux eux entiers sont frères.
1 2 3 4 5 6 7 8 9 10 |
fonction test_frere(n1:entier;n2:entier):entier Début ch1<-Convch(n1) ch2<-Convch(n2) i<-0 Tant que (i<long(ch1)-1) et Pos(ch2,ch1[i])>=0 faire i<-i+1 Fin tant que retourner Pos(ch2,ch1[i])>=0 Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
ch1 | chaîne des caractères |
ch2 | chaîne des caractères |
i | entier |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
def saisie(): n=int (input('donner un entier > 0 ')) while n<0 : n=int (input('donner un entier > 0 ')) return n def test_frere(n1,n2): ch1=str(n1) ch2=str(n2) i=0 while (i<len(ch1)-1) and ch2.find(ch1[i])>=0: i=i+1 return ch2.find(ch1[i])>=0 #programme principal n1=saisie() n2=saisie() if (test_frere(n1,n2)): print('n1 et n2 sont freres') else: print('n1 et n2 ne sont pas freres') |
Exécution du programme
Pour créer une application en Python et Designer QT qui saisit 2 entiers N1 et N2 strictement positifs, vérifie et affiche s’ils sont frères 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é 'n1' pour entrer l'entier n1.
QLineEdit
nommé 'n2' pour entrer l'entier n2.
QPushButton
nommé 'bt_test' pour tester si n1 et n2 sont frères
QLabel
nommé 'msg' pour afficher un message d'erreur et le résultat du test
Enregistrez le fichier avec l'extension .ui
, par exemple code_morse.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 |
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_frere.ui") def test_frere(): n1 = int(windows.n1.text()) n2 = int(windows.n2.text()) if (n1>0) and (n2>0): ch1=str(n1) ch2=str(n2) i=0 while (i<len(ch1)-1) and ch2.find(ch1[i])>=0: i=i+1 if ch2.find(ch1[i])>=0: windows.msg.setText("n1 et n2 sont freres") else: windows.msg.setText("n1 et n2 ne sont pas freres") else: windows.msg.setText("donner deux entiers n1> et n2 >0") windows.bt_test.clicked.connect(test_frere) 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