IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Помогите написать архиватор для текстовых файлов на паскале, Я на первом курсе очень надо сдать, со кроком уже опаздываю... Помогит
-Антон-
сообщение 24.10.2007 18:03
Сообщение #1


Гость






Задача такая:

Программа архиватор- разархиватор текстовых файлов на русском языке ( Применяются только буквы русского алфавита, знаки припенания и пробелы, сжатие должно быть максимальным).

Примечание: Мне препод сказал, что как-то надо сделать так, чтобы на символ приходилось не 8 бит, а 5... можно 6. ( Сказал надо использовать SHL и SHR, а я только школу закончил, полтора месяца отучился, что такое бинарные операции и что с ними делать не представляю).
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Гость
сообщение 26.10.2007 19:06
Сообщение #2


Гость






Я бы поучавствовыл... но проблема, что с паскалем плохо, в школе почти не было, а тут в инсте сразу завал... мне моей головой пока не понять. А в книге че-то ничего не ту... Мне бы хотя бы только алгоритм сжатия, с открытием файла я разберусь.
 К началу страницы 
+ Ответить 
Malice
сообщение 27.10.2007 12:02
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Алгоритм простой:
Выбираем используемый алфавит, читаем посимвольно из исходного файла и записаваем порядковые номера символов в конечный файл. Количество бит на представление порядкового номера будет меньше 8-и (6 с твоим алфавитом), чем и достигается сжатие. Единственная сложность - нельзя писать в файл по 6 бит, нужно накапливать результат и скидывать по 8.
Небольшой пример..
Алфавит='0'..'9', необходимое колво бит = 4 (1001-максимальный номер в алфавите), исходная строка='0123456789';
1. результат=0; полезных бит в результате 0
2. читаем символ, результат=0000; полезных бит =4; итоговая строка=''; записать пока нечего..
3 читаем символ, результат=0000 0001; полезных бит =8, пишем.. итоговая строка='0000 0001';
4 читаем символ, результат=0010; полезных бит =4;
5 читаем символ, результат=0010 0011; полезных бит =8, , пишем.. итоговая строка='0000 0001 0010 0011';
Ну и так далее, пока не кончится файл.
SHL понадобится в момент сложения текущего результата с уже накопленным, т.е.
результат=(результат SHL колво_бит) OR текущий_результат;
Вот где то так smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
-Антон-   Помогите написать архиватор для текстовых файлов на паскале   24.10.2007 18:03
blackhard   короче мой тебе совет напиши в платном разделе я з...   25.10.2007 23:00
klem4   я сделаю эту программу, только чуть позже, возможн...   26.10.2007 7:27
Malice   В 6 бит можно влезть без заглавных русских букв, в...   26.10.2007 10:40
Ozzя   можно без ё   26.10.2007 11:44
Malice   Ну в таком случае самый простой выход - задавать ч...   26.10.2007 12:45
volvo   Только если без знаков препинания. С ними число си...   26.10.2007 11:58
Гость   Спасибо, буду ждать. Мне сказали, что можно без...   26.10.2007 18:42
Гость   И вообще всем СПАСИБО, кто ответил   26.10.2007 18:42
Malice   Дел здесь на час максимум да и кода в полтора экра...   26.10.2007 19:02
Гость   Я бы поучавствовыл... но проблема, что с паскалем ...   26.10.2007 19:06
Malice   Алгоритм простой: Выбираем используемый алфавит, ч...   27.10.2007 12:02
klem4   извиняюсь что с опозданием, времени совсем нету св...   30.10.2007 18:17
Гость   Спасибо большое) Как нибудь постараюсь отблагодари...   30.10.2007 22:38


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.06.2025 1:03
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"