Medzinárodná Morseova abeceda

Medzinárodná Morseova abeceda [vyslov: morzeova] (iné názvy: Morseova abeceda, Morsova abeceda[1], Morseova telegrafická abeceda, Morseho abeceda [vyslov: morzeho], hovorovo morzeovka) je sústava telegrafných signálov zodpovedajúcich písmenám, čísliciam a iným znakom, ktoré sa používajú pri písaní. V grafickom vyjadrení je to sústava bodiek a čiarok, časovo bodka predstavuje krátky signál a čiarka dlhý signál. Autorom abecedy je Samuel Finley Breese Morse.

Latinské písmená
písmeno kód pomôcka
A agát
B blýskavica
C cíferský cech
D diaľava
E erb
F filiálka
G gnómóny
H hrachovina
I ibis
J jazmín vám dám
K kúpený
L lajdáčisko
M mieria
N národ
O ó ó ó
P palác pána
Q kvíz hráva sám
R rarášok
S sobota
T tón
U učený
V vyvolený
W web mám rád
X Xéniu znám
Y ý maž bárčím
Z zólógia
čísla
číslo kód
1
2
3
4
5
6
7
8
9
0
špeciálne znaky
znak kód
À, Å
Ä
È
É
Ö
Ü
ß
CH
Ñ
. (AAA)
, (MIM)
:
;
? (IMI)
-
(
)
'
=
+
/
@ (AC)
Signály
znak kód
KA
(začiatok vysielania)
BT
(pauza)
AR
(koniec vysielania)
VE
(rozumiem)
SK
(koniec komunikácie)
SOS
(medzinárodné
volanie o pomoc na mori)
IRRUNG
(opakovanie
od posledného
správneho slova)
T M O Ch 0 / 9
Ö 8
G Q Ñ
Z 7
N K Y
C
D X
B 6
E A W J 1 / '
P
R Ä
L
I U Ü 2
F
S V 3
H 4 / 5

Program v C#

upraviť
using System;

namespace x30x12x2021
{
    internal class Program
    {
        static void Main()
        {
            while (true)
            {
                Console.WriteLine("Zadejte text určený pre prevod:");
                string line = Console.ReadLine();
                if (string.IsNullOrEmpty(line)) break;
                else
                {
                    Console.WriteLine();

                    if (line[0] == '.' || line[0] == '-') //bola zadána Morseova ábeceda?
                    {
                        string[] vs = line.Split(' ', StringSplitOptions.RemoveEmptyEntries); //medzery v Morseovke

                        for (int i = 0; i < vs.Length; i++)
                        {
                            Console.Write(Morse.DecodeMorseCode(vs[i]));
                        }
                    }
                    else //nebola zadána Morseovka, pracujem s textom
                    {
                        for (int i = 0; i < line.Length; i++)
                        {
                            Console.Write(Morse.EncodeToMorseCode(line[i]));
                            Console.Write(" "); //oddelovač
                        }
                    }

                    Console.WriteLine();
                }
            }
        }
    }

    static class Morse
    {
        #region ONLY READ
        private static readonly string[,] MorseCodes = new string[,]
            {
                {"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" , "--.."},
                {"0" , "-----"},
                {"1" , ".----"},
                {"2" , "..---"},
                {"3" , "...--"},
                {"4" , "....-"},
                {"5" , "....."},
                {"6" , "-...."},
                {"7" , "--..."},
                {"8" , "---.."},
                {"9" , "----."}
            };
        #endregion
        public static string EncodeToMorseCode(char c)
        {
            var uc = char.ToUpper(c);
            int len = MorseCodes.GetLength(0);
            for (int i = 0; i < len; i++)
            {
                if (uc == MorseCodes[i, 0][0]) return MorseCodes[i, 1];
            }
            return uc.ToString();
        }

        public static string DecodeMorseCode(string m)
        {
            int len = MorseCodes.GetLength(0);
            for (int i = 0; i < len; i++)
            {
                if (m == MorseCodes[i, 1]) return MorseCodes[i, 0];
            }
            return "?";
        }
    }
}

Pozri aj

upraviť

Poznámka

upraviť
  1. V PSP je síce (pre výslovnosť mórs) kodifikovaný tvar Morseova, ale tento tvar technicky protirečí štandardným pravopisným pravidlám, podľa ktorých koncové nemé e v cudzích menách vypadáva (správny tvar Morsova je uvedený napríklad vo Veľkom slovníku cudzích slov).