![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Требуется разработать программу для сжатия и распаковки файлов. Для кодирования используется алгоритм Шеннона-Фано. Собственно, проблем с кодированием нет. Вопрос у меня относительно сжатия. Как от меня требуется, сообщение из исходного(входного файла) файла я должна записать в выходной файл (он по заданию двоичный), предварительно закодировав. Для сжатия требуется побайтовый вывод в файл..т.е. у нас есть схема кодирования..считываем очерёдный символ из входного сообщения..ищем для него код...нашли - готовы записывать..но здесь побайтовый вывод. Мы должны сначала набрать 8 бит ,и только потом выводить (но вот код найденный может занимать меньше 8 бит..может больше - у меня с предусмотрением этого проблема)
typedef struct structure {unsigned char id; int count; char code[10];} STRUCTURE; id - поле для символа count - число вхождений символа code[10] - сам код mas - массив структур перед выводом в выходной файл массив структур упорядочен по убыванию (убыванию поля count) как вспомогательный используется массив char mas_code[255][10] (массив содержит в нулевом столбце количество вхождений символа, в остальных коды из 0 и 1) а вот что делать с этим самым побайтовым выводом - не получается..... как бы попытки есть...но записывается несовсем правильно не совсем правильно...
Сообщение отредактировано: 18192123 - 6.12.2007 19:49 |
![]() ![]() |
![]() |
Текстовая версия | 14.08.2025 6:26 |