Ecrire un programme Python qui permet de coder en morse un mot de passe, supposé composé de N chiffres décimaux (4≤N≤8), puis d’afficher le code.
Tableau d’équivalence chiffres/codes morses :
0 1 2 3 4 5 6 7 8 9
----- .---- ..--- …-- ….- ….. -…. --… ---.. ----.
Pour une meilleure lisibilité du résultat, les chiffres codés en morse seront séparés par point d’interrogation ( ?) lors de l’affichage.
Exemple :Pour le mot de passe 123456, le programme affichera : .---- ?..--- ?...-- ?....-- ?.... ?-….?
1- Lecture du mot de passe :
Demander à l'utilisateur de saisir un mot de passe contenant entre 4 et 8 chiffres.
2- Conversion du mot de passe :
Pour chaque chiffre du mot de passe, trouver son code Morse .
Joindre les codes Morse obtenus en les séparant par un point d'interrogation (?
).
3- Affichage du résultat :
Afficher le code Morse final.
Dans cet algorithme, On va utiliser 3 fonctions :
Algorithme du programme Principal
1 2 3 4 5 |
Algorithme coder_morse Debut ch<-saisie_motdepasse() Ecrire("Le code Morse est: "+code_morse(ch)) Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
ch | chaîne des caractères |
La fonction verif_chiffres
Cette fonction vérifie que la chaîne est composée seulement des chiffres.
1 2 3 4 5 6 7 8 9 |
Fonction verif_chiffres(ch:chaîne):booleen Début i<-0 # Verifier si la chaine est composee uniquement par des lettres majusculeset des espaces Tant que(i<long(ch)-1) et ('0'<=ch[i]<='9') faire i=i+1 Fin tant que retourner '0'<=ch[i]<='9' Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
i | entier |
La fonction saisie_chaine
Cette fonction saisit une chaîne composée uniquement des chiffres entre 4 et 8.
1 2 3 4 5 6 7 8 9 10 |
fonction saisie_chaine():chaine Début Ecrire('donner un mot de passe contenant uniquement par des chiffres:') Lire(ch) Tant que (verif_chiffres(ch)=Faux) ou (long(ch)<4) ou long(ch)>8 faire Ecrire('donner un mot de passe contenant uniquement par des chiffres:') Lire(ch) Fin tant que retourner ch Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
ch | chaîne des caractères |
La fonction code_morse
Cette fonction code en morse un mot de passe saisi par l'utilisateur
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
fonction code_morse(ch:chaine):chaine Début code<-'' pour i de 0 à long(ch)-1) faire selon ch[i] '0':code<-code+'?'+'-----'; '1':code<-code+'?'+'.----'; '2':code<-code+'?'+'..---'; '3':code<-code+'?'+'...--'; '4':code<-code+'?'+'....-'; '5':code<-code+'?'+'.....'; '6':code<-code+'?'+'-....'; '7':code<-code+'?'+'--...'; '8':code<-code+'?'+'---..'; '9':codevcode+'?'+'----.'; code<-Pos(code,1,long(code)) return code; Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
code | 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 25 26 27 28 29 30 31 32 33 34 |
def verif_chiffres(ch): i=0 # Verifier si la chaine est composee uniquement par des chiffres while(i<len(ch)-1) and ('0'<=ch[i]<='9') : i=i+1 return '0'<=ch[i]<='9' def saisie_motdepasse(): ch=input('donner un mot de passe contenant uniquement par des chiffres: ') while verif_chiffres(ch)==False or len(ch)<4 or len(ch)>8 : ch=input('donner un mot de passe contenant uniquement par des chiffres: ') return ch def code_morse(ch): code='' for i in range(len(ch)): match ch[i] : case '0':code=code+'?'+'-----'; case '1':code=code+'?'+'.----'; case '2':code=code+'?'+'..---'; case '3':code=code+'?'+'...--'; case '4':code=code+'?'+'....-'; case '5':code=code+'?'+'.....'; case '6':code=code+'?'+'-....'; case '7':code=code+'?'+'--...'; case '8':code=code+'?'+'---..'; case '9':code=code+'?'+'----.'; code=code[1:len(code)] return code; # programme principal ch=saisie_motdepasse() print("Le code Morse est: "+code_morse(ch)) |
Exécution du programme
Pour créer une application en Python et Designer QT qui permet de coder en morse un mot de passe, supposé composé de N chiffres décimaux (4≤N≤8), puis d’afficher le code, 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é 'ch' pour entrer le mot de passe .
QPushButton
nommé 'bt_morse' pour coder en Morse une chaîne des caractères
QLabel
nommé 'msg' pour afficher un message d'erreur et le code Morse
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
from PyQt5.uic import loadUi from PyQt5 import QtCore, QtGui from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtGui, QtWidgets app = QApplication([]) windows = loadUi ("code_morse.ui") def verif_chiffres(ch): i=0 # Verifier si la chaine est composee uniquement par des lettres majusculeset des espaces while(i<len(ch)-1) and ('0'<=ch[i]<='9') : i=i+1 return '0'<=ch[i]<='9' def code_morse(): windows.msg.clear() code='' ch = windows.ch.text() if verif_chiffres(ch) or len(ch)<4 or len(ch)>8 : for i in range(len(ch)): match ch[i] : case '0':code=code+'?'+'-----'; case '1':code=code+'?'+'.----'; case '2':code=code+'?'+'..---'; case '3':code=code+'?'+'...--'; case '4':code=code+'?'+'....-'; case '5':code=code+'?'+'.....'; case '6':code=code+'?'+'-....'; case '7':code=code+'?'+'--...'; case '8':code=code+'?'+'---..'; case '9':code=code+'?'+'----.'; code=code[1:len(code)] windows.msg.setText("Le code Morse est: "+code) else: windows.msg.setText('le mot de passe doit compose uniquement entre 4 et 8 chiffres: ') windows.bt_morse.clicked.connect(code_morse) 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