Professional Documents
Culture Documents
Vježba 09 RLE
Vježba 09 RLE
Vježba 09 RLE
• Ulazni tok:
AAAAAAAAAAAAAA%3%%42%%%34
FFFFFFFFF%%%%xxxxxx32
• Izlazni tok:
%A9%A5%%13%%242%%334
%F9%%4%x632
Implementacija rješenja –
deklaracija funkcija (rle.h)
Funkcija za kompresiju
Pomoćne funkcije
Glavna funkcija - testiranje
Testni ekran
Primjer kodiranja
• Ulaz
• Izlaz
Primjer ulazne tekst datoteke (25.144 znakova)
Primjer komprimirane datoteke (20.393 znakova)
Zadatak
• Napisati funkciju za dekompresiju po uzoru na funkciju za
kompresiju
• Opis algoritma:
• Otvoriti ulaznu datoteku, otvoriti izlaznu datoteku
• Dok ulazna datoteka nije EOF raditi:
• Pročitati karakter ulazne datoteke
• Ako ulazna datoteka još uvijek nije EOF
• Ako je pročitani karakter različit od ESCAPE karaktera upisati karakter
u izlaznu datoteku
• Inače, pročitati sljedeći karakter, pročitati broj ponavljanja sljedećeg
karaktera i upisati karakter n puta u izlaznu datoteku
(broj ponavljanja karaktera možemo izračunati kao ulazna.get() – 48)
• Zatvoriti ulaznu i izlaznu datoteku
Poboljšanje
• Umjesto maksimalno 9 ponavljanja dopuštamo maksimalno 78
ponavljanja. Ponavljanja zapisujemo ASCII karakterima od
karaktera 49 (1) do 126 (~).
Poboljšanje – primjer komprimirane datoteke
(18.802 znakova)