logo

Překladač Morseovy abecedy v Pythonu

Morseova abeceda je metoda přenosu textových informací jako série zapnutých a vypnutých tónů, světel nebo kliknutí, kterým může zkušený posluchač nebo pozorovatel přímo porozumět bez speciálního vybavení. Je pojmenován po Samuelovi F. B. Morse, vynálezci telegrafu.

Algoritmus

Algoritmus je velmi jednoduchý. Každý znak v angličtině je nahrazen řadou „teček“ a „pomlček“ nebo někdy pouze jednotného čísla „tečky“ nebo „pomlčky“ a naopak.
Podívejte se prosím na tuto Wikipedii obraz pro detaily.



Šifrování

  1. V případě šifrování extrahujeme každý znak (pokud ne mezeru) ze slova jeden po druhém a porovnáváme jej s odpovídajícím morseovým kódem uloženým v libovolné datové struktuře, kterou jsme zvolili (pokud kódujete v pythonu, slovníky se mohou ukázat jako být v tomto případě velmi užitečný)
  2. Morseovu abecedu uložíme do proměnné, která bude obsahovat náš zakódovaný řetězec, a poté k našemu řetězci přidáme mezeru, která bude obsahovat výsledek.
  3. Při kódování v morseově abecedě potřebujeme přidat 1 mezeru mezi každý znak a 2 po sobě jdoucí mezery mezi každé slovo.
  4. Pokud je znak mezera, přidejte další mezeru do proměnné obsahující výsledek. Tento postup opakujeme, dokud neprojedeme celý řetězec

Dešifrování

  1. V případě dešifrování začínáme přidáním mezery na konec řetězce, který se má dekódovat (to bude vysvětleno později).
  2. Nyní pokračujeme v extrahování znaků z řetězce, dokud nezískáme mezeru.
  3. Jakmile dostaneme mezeru, vyhledáme odpovídající anglický znak k extrahované posloupnosti znaků (nebo naší morseově abecedě) a přidáme jej do proměnné, která uloží výsledek.
  4. Pamatujte, že sledování prostoru je nejdůležitější součástí tohoto procesu dešifrování. Jakmile získáme 2 po sobě jdoucí mezery, přidáme do naší proměnné obsahující dekódovaný řetězec další mezeru.
  5. Poslední mezera na konci řetězce nám pomůže identifikovat poslední sekvenci znaků Morseovy abecedy (protože mezera funguje jako kontrola extrahování znaků a zahájení jejich dekódování).

Implementace:

Python poskytuje datovou strukturu zvanou slovník, která ukládá informace ve formě párů klíč-hodnota, což je velmi výhodné pro implementaci šifry, jako je morseova abeceda. Morseovu abecedu můžeme uložit do slovníku kde (páry klíč–hodnota) => (anglické znaky – Morseova abeceda) . Otevřený text (anglické znaky) nahrazuje klíče a šifrovaný text (Morseova abeceda) tvoří hodnoty odpovídajících klíčů. K hodnotám klíčů lze přistupovat ze slovníku stejným způsobem, jakým přistupujeme k hodnotám pole přes jejich index a naopak.

Python3




diskrétní negace matematiky





# Python program to implement Morse Code Translator> '''> VARIABLE KEY> 'cipher' ->'ukládá morseovsky přeloženou formu anglického řetězce'> 'decipher' ->'ukládá anglicky přeloženou formu řetězce Morse'> 'citext' ->'ukládá morseovu abecedu jednoho znaku'> 'i' ->'uchovává počet mezer mezi znaky morse'> 'message' ->'ukládá řetězec, který má být zakódován nebo dekódován'> '''> # 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()>

>

>

převod řetězce na int java

Výstup:

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