Giới thiệu chƣơng trình

Một phần của tài liệu Tiếp cận mã huffman theo tần suất và ứng dụng (Trang 50 - 53)

6. Bố cục của luận văn

3.3.Giới thiệu chƣơng trình

- Chƣơng trình đƣợc viết bằng ngôn ngữ Dev-C++. Đây là môi trƣờng lập trình mã nguồn mở.

- Phần chính của chƣơng trình bao gồm các lời gọi dạng

+ EncodeFile(f1,f2), trong đó f1 tên file dữ liệu cần nén, f2 là tên file kết quả (file nén).

Sau đó ta có thể kiểm định lại tính đúng đắn của thuật toán qua hai bƣớc sau:

- Bƣớc 1: Gọi hàm DecodeFile(f2, f3), trong đó f2 là tên file nén thu đƣợc sau khi thực hiện lệnh.

EncodeFile(f1,f2); f3 là tên file đƣợc giải nén từ file f2.

- Bƣớc 2: Gọi hàm FileCmp(f1,f3) để so sánh f1 và f3. Hàm này cho ra giá trị True nếu hai file có kích thƣớc giống nhau và giống nhau tại từng byte. Trong trƣờng hợp ngƣợc lại hàm cho ra giá trị False.

Sau khi thực hiện hai hàm EncodeFile(f1,f2) và DecodeFile(f2, f3) chƣơng trình tính tỉ lệ nén theo công thức sau:

Tỉ lệ nén đƣợc tính nhƣ sau: 100% 1

2

f f

Trong đó: f1 là dung lƣợng (số byte) của file f1

2

f là dung lƣợng (số byte) của f2

Ngoài ra chƣơng trình thông báo thêm một số thông tin sau đây: - Tên file nguồn.

Số hóa bởi Trung tâm Học liệu - ĐHTN

http://www.lrc.tnu.edu.vn/

- Tên file nén.

- Tên file bung (file mới thu đƣợc sau khi giải nén). - Kết quả đối sánh hai file.

- Tỉ lệ nén.

Chƣơng trình đã thử nghiệm với các kiểu file khác nhau nhƣ: - File văn bản soạn thảo bằng Microsoft word.

- File văn bản soạn thảo Notepad. - File chƣơng trình.

- File đồ họa. - File nhạc.

Dƣới đây là lời gọi kiểm thử chƣơng trình kết quả nhƣ sau:

Ví dụ 1: Nén flie luanvan.doc

Với File dữ liệu vào là luanvan.doc (f1) có dung lƣợng 71680 byte. File nén là Test2.huf (f2) co dung lƣợng 32053 byte.

File giải nén Testnew.doc (f3) có dung lƣợng 71680 byte. Tỉ lệ nén 44%. void Test1() { char * f1 = strdup("abc.doc"); char * f2 = strdup("abc.huf"); char * f3 = strdup("abcnew.cpp"); main() { Test1();

Số hóa bởi Trung tâm Học liệu - ĐHTN

http://www.lrc.tnu.edu.vn/ Ví dụ 2: Nén flie abc.exe

Với File dữ liệu vào là abc.exe (f1) có dung lƣợng 1316775 byte. File nén là abc.huf (f2) co dung lƣợng 1082014 byte.

File giải nén abcnew.exe (f3) có dung lƣợng 1316775 byte. Tỉ lệ nén 82%. void Test2() { char * f1 = strdup("abc.exe"); char * f2 = strdup("abc.huf"); char * f3 = strdup("abcnew.exe"); main() { Test2(); (adsbygoogle = window.adsbygoogle || []).push({});

Số hóa bởi Trung tâm Học liệu - ĐHTN

http://www.lrc.tnu.edu.vn/

Một phần của tài liệu Tiếp cận mã huffman theo tần suất và ứng dụng (Trang 50 - 53)