Aller au contenu

Morse

Le morse⚓︎

L'alphabet morse, ou code morse, est un code permettant de transmettre un texte à l'aide de séries d'impulsions courtes et longues. Inventé en 1835 par Samuel Morse pour la télégraphie, ce code assigne à chaque lettre, chiffre et signe de ponctuation une combinaison unique de signaux intermittents. Considéré comme le précurseur des communications numériques, le code morse a depuis le 1er février 1999 été délaissé au profit d'un système satellitaire pour les communications maritimes.

C'est en 1838 que naît l'alphabet " morse " que nous connaissons. Deux types d'impulsions sont utilisés. Les impulsions courtes (notées " . ", point) qui correspondent à une impulsion électrique de 1/4 de seconde et les longues (notées " - ", trait) à une impulsion de 3/4 de seconde.

Source

Exemple

📋 Texte
-°-° --- -°° °          -- --- °-° °°° °

 C    O   D  E           M  O   R   S   E 

Utilisation d'un dictionnaire

On représente le code morse à l'aide d'un dictionnaire, on ne s'intéresse qu'aux lettres en majuscules non accentuées.
Pour l'espace on utilise le slash (par exemple). Vous pourrez recopier dans votre code ce dictionnaire.

🐍 Script Python
morse = {' ': '/', 'E': '°', 'I': '°°', 'S': '°°°', 'H': '°°°°', 'V': '°°°-', 'U': '°°-', 'F': '°°-°',
'A': '°-', 'R': '°-°', 'L': '°-°°', 'W': '°--', 'P': '°--°', 'J': '°---', 'T': '-', 'N': '-°', 'D': '-°°',
'B': '-°°°', 'X': '-°°-', 'K': '-°-', 'C': '-°-°', 'Y': '-°--', 'M': '--', 'G': '--°', 'Z': '--°°', 
'Q': '--°-', 'O': '---'}

Travail à faire :⚓︎

1. Ecrire un script qui permet de chiffrer un message en morse⚓︎

Exemple d'exécution

Vous pouvez avoir des noms de fonctions différents. Ceci n'est qu'un exemple.

🐍 Console Python
>>> message = 'VIVE LA NSI'
>>> code_mots(message, morse)
'°°°-*°°*°°°-*°*/°-°°*°-*/-°*°°°*°°*'

2. Ecrire un script qui permet de déchiffrer un message envoyé en morse.⚓︎

Exemple d'exécution

Vous pouvez avoir des noms de fonctions différents. Ceci n'est qu'un exemple.

🐍 Console Python
>>> message = 
'-°°°*°-°*°-*°°°-*---*/*°---*°*°°-*-°*°*/*°--°*°-*-°°*°-*°--*°-*-°*/*°-°°*°-*/*-°*°°°*°°*/*°*°°°*-*/*°-*°°°-*°*-°-°*/*-*---*°°*'
>>> decode_mots(message, morse)
'BRAVO JEUNE PADAWAN LA NSI EST AVEC TOI'
Astuce : split

Tester :

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Shift+Esc ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier

Comment rendre son travail

Vous rendrez votre fichier python sur Classroom. Le nom du fichier doit être formé avec le votre.

Par exemple : dupond.py

Contraintes

  • Le script sera bien structuré, avec plusieurs fonctions
  • Vous utiliserez le dictionnaire donné