Morse is een gecodeerde communicatievorm bestaande uit signalen die met tussenpozen worden uitgezonden. Vastgelegde combinaties van deze signalen stellen dan de verschillende letters, leestekens en cijfers voor. Deze morsecode werd in 1835 uitgevonden en ontwikkeld door Samuel Morse, met als doel ze te gebruiken voor het verzenden van telegrafische berichten. Met een telegraaf (zie figuur) kon men namelijk enkel kiezen tussen twee toestanden: sleutel naar beneden (= stroom) of sleutel naar boven (= geen stroom) en tijdsduur (kort of lang). Telegrafie wordt algemeen beschouwd als een voorloper van de latere digitale communicatie.
In de internationale morsecode worden korte signalen genoteerd met een punt (.
) en lange signalen met een koppelteken (-
).
Gegeven is een tekstbestand morsecode.txt1. Dit tekstbestand bevat een lijst van lettertekens (eerste kolom) en hun corresponderende voorstelling in morsecode (tweede kolom). De kolommen worden gescheiden door een tab (\t
). In dit bestand zie je bijvoorbeeld dat de letter K
in morsecode wordt voorgesteld als -.-
en dat een komma wordt voorgesteld als --..--
. Je mag veronderstellen dat alle invoer correct is.
Er worden twee functies gevraagd:
Een functie lees_morse_codes
leest alle morsecodes uit een tekstbestand. De bestandsnaam wordt als enige parmater meegegeven. Het tekstbestand moet opgemaakt zijn zoals bestand morsecode.txt2. De functie moet als resultaat een list teruggeven met de morsecodes.
Een logische functie is_morse_teken
die controleert of een string een correct morseteken voorstelt. Deze functie heeft twee parameters, de eerste parameter is de string die moet gecontroleerd worden. De tweede parameter is de naam van het bestand met de correcte morsecodes. Roep de functie lees_morse_codes
correct aan om de correcte morsecodes te kennen. Dit wordt gecontroleerd in Dodona.
>>> lees_morse_codes('morsecode.txt')
>>> ['.-', '-...', '-.-.', ..., '-.--.', '-...-', '.--.-.'] # Slechts deel van uitvoer wordt in dit voorbeeld getoond
>>> is_morse_teken('-...-', 'morsecode.txt')
True
>>> is_morse_teken('-.---.-', 'morsecode.txt')
False
>>> is_morse_teken('... --- ...', 'morsecode.txt')
False