logo

Traducător de cod Morse în Python

Codul Morse este o metodă de transmitere a informațiilor text ca o serie de tonuri, lumini sau clicuri care pot fi înțelese direct de un ascultător sau un observator calificat, fără echipament special. Este numit după Samuel F. B. Morse, un inventator al telegrafului.

Algoritm

Algoritmul este foarte simplu. Fiecare caracter din limba engleză este înlocuit cu o serie de „puncte” și „liniuțe” sau uneori doar „punct” sau „liniuță” singular și invers.
Vă rugăm să consultați această Wikipedia imagine pentru detalii.



Criptare

  1. În cazul criptării, extragem fiecare caracter (dacă nu spațiu) dintr-un cuvânt pe rând și îl potrivim cu codul morse corespunzător stocat în orice structură de date pe care am ales-o (dacă codificați în python, dicționarele pot apărea pentru a fi foarte util în acest caz)
  2. Stocați codul morse într-o variabilă care va conține șirul nostru codificat și apoi adăugăm un spațiu la șirul nostru care va conține rezultatul.
  3. În timp ce codificăm în cod morse, trebuie să adăugăm 1 spațiu între fiecare caracter și 2 spații consecutive între fiecare cuvânt.
  4. Dacă caracterul este un spațiu, adăugați un alt spațiu la variabila care conține rezultatul. Repetăm ​​acest proces până traversăm întregul șir

Decriptare

  1. În cazul decriptării, începem prin a adăuga un spațiu la sfârșitul șirului de decodat (asta va fi explicat mai târziu).
  2. Acum continuăm să extragem caractere din șir până când nu obținem spațiu.
  3. De îndată ce obținem un spațiu, căutăm caracterul corespunzător în limba engleză secvenței extrase de caractere (sau codul nostru morse) și îl adăugăm la o variabilă care va stoca rezultatul.
  4. Amintiți-vă că urmărirea spațiului este cea mai importantă parte a acestui proces de decriptare. De îndată ce obținem 2 spații consecutive, vom adăuga un alt spațiu la variabila noastră care conține șirul decodat.
  5. Ultimul spațiu de la sfârșitul șirului ne va ajuta să identificăm ultima secvență de caractere de cod morse (deoarece spațiul acționează ca o verificare pentru extragerea caracterelor și începerea decodării acestora).

Implementare:

Python oferă o structură de date numită dicționar care stochează informații sub formă de perechi cheie-valoare, ceea ce este foarte convenabil pentru implementarea unui cifr cum ar fi un cod Morse. Putem salva diagrama codului morse într-un dicționar unde (perechi cheie-valoare) => (Caractere engleze-Cod Morse) . Textul simplu (caractere engleze) ia locul cheilor, iar textul cifrat (codul Morse) formează valorile cheilor corespunzătoare. Valorile cheilor pot fi accesate din dicționar în același mod în care accesăm valorile unui tablou prin indexul lor și invers.

Python3




citește fișierele json





# Python program to implement Morse Code Translator> '''> VARIABLE KEY> 'cipher' ->'stochează forma tradusă în morse a șirului englez'> 'decipher' ->'stochează forma tradusă în engleză a șirului morse'> 'citext' ->'stochează codul Morse dintr-un singur caracter'> 'i' ->'ține numărătoarea spațiilor dintre caracterele morse'> 'message' ->'stochează șirul care urmează să fie codificat sau decodat'> '''> # Dictionary representing the morse code chart> MORSE_CODE_DICT>=> {>'A'>:>'.-'>,>'B'>:>'-...'>,> >'C'>:>'-.-.'>,>'D'>:>'-..'>,>'E'>:>'.'>,> >'F'>:>'..-.'>,>'G'>:>'--.'>,>'H'>:>'....'>,> >'I'>:>'..'>,>'J'>:>'.---'>,>'K'>:>'-.-'>,> >'L'>:>'.-..'>,>'M'>:>'--'>,>'N'>:>'-.'>,> >'O'>:>'---'>,>'P'>:>'.--.'>,>'Q'>:>'--.-'>,> >'R'>:>'.-.'>,>'S'>:>'...'>,>'T'>:>'-'>,> >'U'>:>'..-'>,>'V'>:>'...-'>,>'W'>:>'.--'>,> >'X'>:>'-..-'>,>'Y'>:>'-.--'>,>'Z'>:>'--..'>,> >'1'>:>'.----'>,>'2'>:>'..---'>,>'3'>:>'...--'>,> >'4'>:>'....-'>,>'5'>:>'.....'>,>'6'>:>'-....'>,> >'7'>:>'--...'>,>'8'>:>'---..'>,>'9'>:>'----.'>,> >'0'>:>'-----'>,>', '>:>'--..--'>,>'.'>:>'.-.-.-'>,> >'?'>:>'..--..'>,>'/'>:>'-..-.'>,>'-'>:>'-....-'>,> >'('>:>'-.--.'>,>')'>:>'-.--.-'>}> # Function to encrypt the string> # according to the morse code chart> def> encrypt(message):> >cipher>=> ''> >for> letter>in> message:> >if> letter !>=> ' '>:> ># Looks up the dictionary and adds the> ># corresponding morse code> ># along with a space to separate> ># morse codes for different characters> >cipher>+>=> MORSE_CODE_DICT[letter]>+> ' '> >else>:> ># 1 space indicates different characters> ># and 2 indicates different words> >cipher>+>=> ' '> >return> cipher> # Function to decrypt the string> # from morse to english> def> decrypt(message):> ># extra space added at the end to access the> ># last morse code> >message>+>=> ' '> >decipher>=> ''> >citext>=> ''> >for> letter>in> message:> ># checks for space> >if> (letter !>=> ' '>):> ># counter to keep track of space> >i>=> 0> ># storing morse code of a single character> >citext>+>=> letter> ># in case of space> >else>:> ># if i = 1 that indicates a new character> >i>+>=> 1> ># if i = 2 that indicates a new word> >if> i>=>=> 2> :> ># adding space to separate words> >decipher>+>=> ' '> >else>:> ># accessing the keys using their values (reverse of encryption)> >decipher>+>=> list>(MORSE_CODE_DICT.keys())[>list>(MORSE_CODE_DICT> >.values()).index(citext)]> >citext>=> ''> >return> decipher> # Hard-coded driver function to run the program> def> main():> >message>=> 'GEEKS-FOR-GEEKS'> >result>=> encrypt(message.upper())> >print> (result)> >message>=> '--. . . -.- ... -....- ..-. --- .-. -....- --. . . -.- ... '> >result>=> decrypt(message)> >print> (result)> # Executes the main function> if> __name__>=>=> '__main__'>:> >main()>

>

matrice java dinamică
>

Ieșire:

--. . . -.- ... -....- ..-. --- .-. -....- --. . . -.- ... GEEKS-FOR-GEEKS>