Programátorský víceboj 2. díl - Morseovka

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

cpp
nováček
Příspěvky: 41
Registrován: červen 17
Pohlaví: Muž

Programátorský víceboj 2. díl - Morseovka

Příspěvekod cpp » 07 črc 2017 09:03

Ahoj kolegové,

minulý matematický díl velmi lehký. Dnes trochu přitvrdíme, ale ne moc. Úkolem bude opět doplnit definice dvou funkcí.

Zadání

Kód: Vybrat vše

void text_2_morse(char * text);
int morse_2_text(char * morse);


První funkce bude převádět vstupní text (parametr * text) na morseovku (a bude rovnou výsledek převodu vypisovat na standardní výstup).
Pro jednoduchost převádějte pouze malá písmena, ostatní znaky (včetně číslic) ignorujte.

Druhá funkce převadí vstup v morseovce (parametr * morse) na písmena malé abecedy a ihned je vypisuje na standardní výstup. V případě načtení nevalidního kódu (jiné znaky než .-/ a prázdný vstup nebo morseovka představující jiné než alfabetické znaky) okamžitě ukončete funkci s návratovou hodnotou 1, jinak (tedy v případě úspěchu) bude návratová hodnota po dočtení vstupu 0.

V morseovce uvažujte znaky '.', '-' a '/'. Význam '.' a '/' je zcela jasný. Znak '/' odděluje od sebe písmena, respektive ukazuje, kde kód pro dané písmeno končí. Pokud před znakem '/' nejsou ani '.' ani '-', má význam mezery.

Příklady převodu
text_2_morse

Kód: Vybrat vše

a >> .-/
bcd >> -.../-.-./-../
x y >> -..-/-.--/
z  (mezera před z a za ním) >> /--..//
t;u >> -/..-/
ij1234k >> ../.---/.-../
 (mezera >> /)
(prázdný vstup) >> (nic nevypisuj)


morse_2_text

Kód: Vybrat vše

.-/ >> a
.- >> (chyba)
// >> (dvě mezery za sebou)
....-/ (číslo 4) >> (chyba)
fgh >> (chyba)


https://cs.wikipedia.org/wiki/Morseova_abeceda

Proč se převádí jen malá abeceda?
Cílem není vytvořit aplikaci, která by měla sloužit v reálném světě pro převody. Cílem je přijít na ten správný princip. Když dokážete, že zvládnete převádět znaky malé abecedy, znamená to, že byste bez problému zvládli i ostatní znaky, ale nemusíte se s tím zdržovat (pok sami nechcete).

Řešení
Doporučeno je C, ale jazyk si můžete vybrat dle libosti. Kód by měl být nejen funkční, ale také dobře strukturovaný a dobře optimalizovaný (preferováná je co nejnižší časová náročnost). V případě, že zvolíte jazyk C, můžete se zapojit do minisoutěže o nejrychlejší převod.

Pokud budete potřebovat pomocné funkce nebo konstanty, můžete je použít.

Pro odevzdání platí stejná pravidla jako minule.



Reklama
Uživatelský avatar
ITCrowd
Tvůrce článků
Elite Level 11.5
Elite Level 11.5
Příspěvky: 14657
Registrován: březen 10
Pohlaví: Muž

Re: Programátorský víceboj 2. díl - Morseovka

Příspěvekod ITCrowd » 07 črc 2017 09:58

OT/Zajímalo by mě, jestli přiznáš pravou identitu, když jsi minule tak rozvášněně psal o chlapství:-) Taky by mě zajímalo, proč věnuješ tolik práce, času, energie a zřejmě taky peněz na to, aby ses sem vrátil s novou identitou a vyvolával flame, případně urážel členy fóra.
Je škoda, že svou umíněnost a zarputilost nevěnuješ ušlechtilejším cílům :-( Tak co, chlapsky se přiznáš, nebo budeš zbaběle zalezlý za VPN?
/OT
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem

Uživatelský avatar
faraon
Master Level 8
Master Level 8
Příspěvky: 6314
Registrován: prosinec 10
Pohlaví: Muž

Re: Programátorský víceboj 2. díl - Morseovka

Příspěvekod faraon » 07 črc 2017 19:50

Jen pro zajímavost, není morseovka jako morseovka. U nás známá mezinárodní verze se od té "pravé", používané ještě v šedesátých letech dvacátého století na amerických železnicích, než jí nahradily počítačové sítě, místy dost podstatně liší:

Obrázek

Škoda že je zadání osekané o čísla, právě s těmi se dá užít spousta legrace. Navíc norma obsahuje také mnoho znaků národních abeced s diakritikou, a dokonce i řadu speciálních povelů, například opravu předchozí chyby :)
"Pimonte, Pimonte, co jsi ty za pána, že za tebou padla ta majlandská brána, hop, hop, hop.
Ta majlandská brána a ty čtyři mosty, vystav si, Pi­monte, silnější forposty, hop, hop, hop!"

Píseň dobrého vojáka Švejka

Uživatelský avatar
ITCrowd
Tvůrce článků
Elite Level 11.5
Elite Level 11.5
Příspěvky: 14657
Registrován: březen 10
Pohlaví: Muž

Re: Programátorský víceboj 2. díl - Morseovka

Příspěvekod ITCrowd » 07 črc 2017 20:13

Jj. např. identifikace zkratek, vysílat čísla zkráceně, q-kódy. Takhle mi to přijde jako všechno na jedno brdo.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Jak se jmenuje díl - The Simpsons
    od HelFix » 17 čer 2018 11:21 » v Multimédia (filmy, hudba, CDs/DVDs)
    4
    306
    od HelFix
    17 čer 2018 12:10
  • Týdenní herní novinky - 24. díl
    od beather » 28 srp 2017 08:14 » v Hry
    1
    652
    od Ltb
    28 srp 2017 09:42
  • Týdenní herní novinky - 23. díl
    od beather » 21 srp 2017 08:29 » v Hry
    1
    735
    od Ltb
    21 srp 2017 11:06
  • Týdenní herní novinky - 25. díl
    od beather » 04 zář 2017 08:02 » v Hry
    1
    786
    od Ltb
    04 zář 2017 14:11

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot] a 0 hostů