(Se)Třídění polí (řazení polí)
Napište program, který vytvoří tabulku četností znaků v souborech a vytiskne ji podle ASCII hodnot znaků a podle zastoupení znaků.
Pozn.:
- Seznam souborů ze kterých se vytváří
četnost je dán jako parametr při spuštění
programu
- vytvořte funkci, která naplní tabulku
četnosti pro jeden soubor (a celek realizujte jejím
vícenásobným voláním)
- tabulku
četností vytiskněte ve formátu – pořadové
číslo znaku dekadicky, hexa, počet znaků v souborech (v
kusech), četnost znaku v souboru (procentní zastoupení),
a vytištěný znak (je-li tisk možný)
- tabulku
seřaďte podle četností znaků (od nejvíce zastoupeného
k nejméně). Seznamte se z třídícími
(řadicími) algoritmy a jeden aplikujte (např. Bubble sort,
heapsort, insertion sort, quicksort, shell sort, bucket sort, ... ).
Pozn. při řazení pole četností by se vám
ztratila informace o tom ke kterému znaku četnost patří.
To lze vyřešit např. pomocí struktury (znak, četnost).
Zkuste ale jinou variantu – vytvořte si pole indexů, které
bude ukazovat do pole četností (to je hodnota 10 v poli bude
znamenat, že na daném místě by byl prvek číslo
10 z druhého pole). Třídění potom realizujte
tak, že budete třídit pomocí „přehazování“
indexů v prvním poli – výsledkem tedy bude
situace, kdy indexy v druhém poli budou seřazeny tak, aby byly
podle velikosti hodnoty buněk na které odkazují.
-
Ošetřete možné chyby při práci programu (chybová
hlášení)
Poslední úpravy 2007-09-19