logo

Morzės kodo vertėjas Python

Morzės kodas yra būdas perduoti tekstinę informaciją kaip įjungimo ir išjungimo tonų, lempučių ar paspaudimų seriją, kurią kvalifikuotas klausytojas ar stebėtojas gali suprasti tiesiogiai be specialios įrangos. Jis pavadintas telegrafo išradėjo Samuelio F. B. Morse vardu.

Algoritmas

Algoritmas labai paprastas. Kiekvienas anglų kalbos simbolis pakeičiamas „taškų“ ir „brūkšnelių“ serijomis arba kartais tik vienaskaitos „tašku“ arba „brūkšneliu“ ir atvirkščiai.
Žiūrėkite šią Vikipediją vaizdas dėl detalių.



Šifravimas

  1. Šifravimo atveju kiekvieną simbolį (jei ne tarpą) ištraukiame iš žodžio po vieną ir suderiname jį su atitinkamu morzės kodu, saugomu bet kurioje pasirinktoje duomenų struktūroje (jei koduojate python, žodynai gali pasirodyti kad šiuo atveju būtų labai naudinga)
  2. Išsaugokite morzės kodą kintamajame, kuriame bus mūsų užkoduota eilutė, tada eilutėje, kurioje bus rezultatas, pridedame tarpą.
  3. Koduodami morzės kodu turime pridėti 1 tarpą tarp kiekvieno simbolio ir 2 tarpus iš eilės tarp kiekvieno žodžio.
  4. Jei simbolis yra tarpas, pridėkite kitą tarpą prie kintamojo, kuriame yra rezultatas. Šį procesą kartojame tol, kol pereiname visą eilutę

Iššifravimas

  1. Iššifravimo atveju pradedame pridėdami tarpą dekoduojamos eilutės pabaigoje (tai bus paaiškinta vėliau).
  2. Dabar mes nuolat ištraukiame simbolius iš eilutės, kol negauname vietos.
  3. Kai tik gauname tarpą, surandame atitinkamą anglų kalbos simbolį pagal ištrauktą simbolių seką (arba mūsų morzės kodą) ir pridedame jį prie kintamojo, kuriame bus saugomas rezultatas.
  4. Atminkite, kad erdvės stebėjimas yra svarbiausia šio iššifravimo proceso dalis. Kai tik gausime 2 tarpus iš eilės, prie kintamojo, kuriame yra iššifruota eilutė, pridėsime dar vieną tarpą.
  5. Paskutinis tarpas eilutės pabaigoje padės mums nustatyti paskutinę Morzės kodo simbolių seką (nes tarpas veikia kaip simbolių ištraukimo ir jų dekodavimo patikrinimas).

Įgyvendinimas:

„Python“ teikia duomenų struktūrą, vadinamą žodynu, kurioje saugoma informacija raktų ir reikšmių porų pavidalu, o tai labai patogu įdiegti šifrą, pvz., Morzės kodą. Morzės kodo diagramą galime išsaugoti žodyne, kur (rakto-reikšmių poros) => (angliški simboliai-morzės kodas) . Paprastas tekstas (angliški simboliai) užima klavišų vietą, o šifruotas tekstas (Morzės kodas) sudaro atitinkamų klavišų reikšmes. Raktų reikšmes galima pasiekti iš žodyno taip pat, kaip mes pasiekiame masyvo reikšmes per jų indeksą ir atvirkščiai.

Python3




Java klasės diagrama





# Python program to implement Morse Code Translator> '''> VARIABLE KEY> 'cipher' ->'saugo morze išverstą angliškos eilutės formą'> 'decipher' ->'saugo morzės eilutės išverstą formą'> 'citext' ->'saugo vieno simbolio morzės kodą'> 'i' ->'laiko tarpų tarp morzės simbolių skaičių'> 'message' ->'saugo eilutę, kurią reikia užkoduoti arba iššifruoti'> '''> # 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()>

užblokuoti kontaktai

>

>

Išvestis:

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