Add 'sk1/README.md'
This commit is contained in:
		
							parent
							
								
									68e099b555
								
							
						
					
					
						commit
						621105b2f0
					
				
							
								
								
									
										55
									
								
								sk1/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								sk1/README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,55 @@
 | 
			
		||||
# Zadanie
 | 
			
		||||
 | 
			
		||||
Naprogramuj nástroj na kompresiu a dekompresiu. Na kompresiu použite jeden alebo viac kompresných algoritmov: Huffmanovo kódovanie, LZ77, LZ78, Run Length kódovanie alebo iný.
 | 
			
		||||
Meno vstupného a výstupného súboru načítajte ako argument príkazového riadka. V zadaní by mali byť implementované tieto dve funkcie:
 | 
			
		||||
 | 
			
		||||
```C
 | 
			
		||||
/**
 | 
			
		||||
 * Skomprimuje súbor in a zapíše do súboru out.
 | 
			
		||||
 * @arg in smerník na otvorený vstupný súbor (na čítanie)
 | 
			
		||||
 * @arg out smerník na otvorený výstupný súbor (na zápis)
 | 
			
		||||
 * @return počet bajtov skomprimovaného súboru
 | 
			
		||||
 */
 | 
			
		||||
int compress(FILE* in, FILE* out);
 | 
			
		||||
/**
 | 
			
		||||
 * Dekomprimuje súbor in a zapíše do súboru out.
 | 
			
		||||
 * @arg in smerník na otvorený vstupný súbor (na čítanie)
 | 
			
		||||
 * @arg out smerník na otvorený výstupný súbor (na zápis)
 | 
			
		||||
 * @return počet bajtov dekomprimovaného  súboru
 | 
			
		||||
 */
 | 
			
		||||
void decompress(FILE* in, FILE* out);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Kompresor a dekompresor by mal byť schopný pracovať s ľubovoľným binárnym súborom do 10 MB. Súbor by mal byť po skomprimovaní menší minimálne o 10 percent a po dekomprimovaní by mal byť zhodný s pôvodným súborom. Pri práci s binárnymi súbormi môžete využiť funkcie fopen(), fread() a fwrite().
 | 
			
		||||
 | 
			
		||||
Na otestovanie kompresora a dekompresora použite súbory z Cantebury corpus.
 | 
			
		||||
 | 
			
		||||
# Stručný opis funkčnosti
 | 
			
		||||
 | 
			
		||||
Musíme vytvoriť program, ktorý dokáže komprimovať a dekomprimovať súbory bez straty akýchkoľvek údajov
 | 
			
		||||
 | 
			
		||||
# Stručný opis riešenia
 | 
			
		||||
 | 
			
		||||
Program používa na kompresiu súborov algoritmus stratovej kompresie dát LZ78. Kombinácie písmen kombinácie a index tejto kombinácie dynamicky uloží do stromu a potom zapíše iba index do súboru.
 | 
			
		||||
 | 
			
		||||
# Podmienky za ktorých funguje
 | 
			
		||||
 | 
			
		||||
Program dokáže skutočne komprimovať súbory s dobrým opakovaním podobných bajtových sekvencií. Funguje zle s malými súbormi a so súbormi s veľmi rozdielnymi bajtovými sekvenciami
 | 
			
		||||
 | 
			
		||||
# Návod na použitie
 | 
			
		||||
 | 
			
		||||
-   Skompilujte program
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
make all
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
-   spustiť program
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
./program c vstupný súbor vystupný súbor
 | 
			
		||||
./program d vstupný súbor vystupný súbor
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
použite c na zakódovanie súboru
 | 
			
		||||
použite d na dekódovanie súboru
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user