![]() |
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 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Запускать программу с параметрами:
Start -> Run -> "G:\Vlady Documents\Programs\CBlock\console_c\console.exe" text.txt text2.txt code (замени на свои данные. Все, что НЕ в кавычках - это параметры) В программе должны анализироваться параметры командной строки... Что-то типа: int main(int argc, char *argv[]) { |
![]() ![]() |
![]() |
Текстовая версия | 16.08.2025 2:03 |