Zadanie 2

Pewien marynarz, specjalizujący się w przesyłaniu sygnałów świetlnych kodem Morse’a, stwierdził, że wysyłane przez niego wiadomości mogą zostać skrócone.

Sygnały świetlne przesyła się w taki sposób, że przez określone interwały czasu pokazuje się światło lub się je zasłania. Jeśli światło mrugnęło, to jest to tak zwana „kropka”, a jeśli nie mrugnęło, to jest to tak zwana „kreska”.

Marynarz przeanapoliczył średnią liczbę liter na wiadomość. Z jego doświadczenia wynika, że średnia ta jest bardzo dobrym przybliżeniem zapotrzebowania na daną literę w nadawanym tekście, ponieważ wysyłane przez niego wiadomości są bardzo do siebie podobne.

Napisz program, który na podstawie podanych w pliku dane_2.txt częstości liter utworzy kod przedrostkowy – tabelę słów kodowych – i zapisze ją w pliku wyniki_2.txt.

Plik dane_2.txt składa się z 23 wierszy. W każdym wierszu znajduje się łańcuch znaków składający się z kolejnych liter alfabetu łacińskiego (bez liter q, x, v), dwukropka oraz liczby naturalnej.

Przykład 1

Dla danych:

Linia 1. a dwukropek 92. Linia 2. b dwukropek 23.

Wynikiem działania programu jest:

Linia 1. a podkreślnik podkreślnik podkreślnik. Linia 2. b kropka podkreślnik podkreślnik kropka kropka kropka.
RaDYTpD0eiPS7

Przycisk do pobrania TXT z danymi wyjściowymi.

Plik TXT o rozmiarze 158.00 B w języku polskim

Do oceny oddajesz:

  • plik wyniki_2.txt zawierający odpowiedź (litery i odpowiadające im słowa kodowe, oddzielone pojedynczym znakiem odstępu, zapisane w kolejnych liniach w kolejności odpowiadającej kolejności występowania liter w pliku źródłowym),

  • plik(i) z komputerową realizacją zadania (kodem programu).

W załączonym pliku dane_2.txt znajdują się dane wejściowe do tego zadania. W każdej nowej linii znajduje się litera i częstość jej występowania, oddzielone dwukropkiem i znakiem odstępu.

Przykład 2

Fragment pliku z danymi:

a: 92 
b: 23 
c: 42 
d: 36

Polecenie 1

Rozwiąż zadanie dla danych wejściowych zawartych w pliku dane_2.txt. Wykorzystaj w tym celu jeden z języków programowania: C++, Java lub Python. Odpowiedź do zadania znajdziesz w pliku wyniki_2.txt, umieszczonym po omówieniu przykładowego rozwiązania w formie pseudokodu.

Polecenie 2

Porównaj swoje rozwiązanie z przedstawionym w prezentacji.

R1Tcr0Q7P9XC61
Wymyśl pytanie na kartkówkę związane z tematem materiału.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Odpowiedź

Wynik zadania rozwiązanego metodą przedstawioną w prezentacji znajduje się w pliku wyniki_2.txt.

R5RSGVqIFFEhZ

Przycisk do pobrania TXT z wynikami do zadania.

Plik TXT o rozmiarze 217.00 B w języku polskim
Polecenie 3
R1rOcqyblKGox
Wymyśl pytanie na kartkówkę związane z tematem materiału.