Prezentacja multimedialna
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 wierszy. W każdym wierszu znajduje się łańcuch znaków składający się z kolejnych liter alfabetu łacińskiego (bez liter , , ), dwukropka oraz liczby naturalnej.
Dla danych:
Wynikiem działania programu jest:
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.
Fragment pliku z danymi:
a: 92
b: 23
c: 42
d: 36
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.
Porównaj swoje rozwiązanie z przedstawionym w prezentacji.
Odpowiedź
Wynik zadania rozwiązanego metodą przedstawioną w prezentacji znajduje się w pliku wyniki_2.txt
.