logo

Morsekodeoversetter i Python

Morsekode er en metode for å overføre tekstinformasjon som en serie av-/på-toner, lys eller klikk som kan forstås direkte av en dyktig lytter eller observatør uten spesialutstyr. Den er oppkalt etter Samuel F. B. Morse, en oppfinner av telegrafen.

Algoritme

Algoritmen er veldig enkel. Hvert tegn på det engelske språket erstattes av en serie med 'prikker' og 'streker' eller noen ganger bare entall 'prikk' eller 'strek' og omvendt.
Vennligst referer til denne Wikipedia bilde for detaljer.



Kryptering

  1. Når det gjelder kryptering, trekker vi ut hvert tegn (hvis ikke mellomrom) fra et ord ett om gangen og matcher det med dens tilsvarende morsekode lagret i hvilken datastruktur vi enn har valgt (hvis du koder i python, kan ordbøker vise seg for å være veldig nyttig i dette tilfellet)
  2. Lagre morsekoden i en variabel som vil inneholde vår kodede streng, og så legger vi til et mellomrom til strengen vår som vil inneholde resultatet.
  3. Mens vi koder i morsekode, må vi legge til 1 mellomrom mellom hvert tegn og 2 påfølgende mellomrom mellom hvert ord.
  4. Hvis tegnet er et mellomrom, legg til et nytt mellomrom til variabelen som inneholder resultatet. Vi gjentar denne prosessen til vi krysser hele strengen

Dekryptering

  1. Ved dekryptering starter vi med å legge til et mellomrom på slutten av strengen som skal dekodes (dette vil bli forklart senere).
  2. Nå fortsetter vi å trekke ut tegn fra strengen til vi ikke får plass.
  3. Så snart vi får et mellomrom, slår vi opp det tilsvarende engelskspråklige tegnet til den utpakkede tegnsekvensen (eller morsekoden vår) og legger den til en variabel som vil lagre resultatet.
  4. Husk å holde styr på plassen er den viktigste delen av denne dekrypteringsprosessen. Så snart vi får 2 påfølgende mellomrom vil vi legge til et nytt mellomrom til variabelen vår som inneholder den dekodede strengen.
  5. Det siste mellomrommet på slutten av strengen vil hjelpe oss med å identifisere den siste sekvensen med morsekodetegn (siden mellomrom fungerer som en sjekk for å trekke ut tegn og begynne å dekode dem).

Gjennomføring:

Python gir en datastruktur kalt en ordbok som lagrer informasjon i form av nøkkelverdi-par som er veldig praktisk for å implementere et chiffer som en morsekode. Vi kan lagre morsekodekartet i en ordbok hvor (nøkkel-verdi-par) => (engelsk tegn-morsekode) . Klarteksten (engelske tegn) tar plassen til nøkler og chifferteksten (morsekode) danner verdiene til de tilsvarende nøklene. Verdiene til nøkler kan nås fra ordboken på samme måte som vi får tilgang til verdiene til en matrise gjennom deres indeks og omvendt.

Python3




nfa til dfa konvertering





# Python program to implement Morse Code Translator> '''> VARIABLE KEY> 'cipher' ->'lagrer den morse-oversatte formen av den engelske strengen'> 'decipher' ->'lagrer den engelsk oversatte formen av morsestrengen'> 'citext' ->'lagrer morsekode av ett enkelt tegn'> 'i' ->'beholder telling av mellomrom mellom morsetegn'> 'message' ->'lagrer strengen som skal kodes eller dekodes'> '''> # 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()>

>

arrays java
>

Produksjon:

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