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

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

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

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


Гость






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

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

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


Гость






Я бы поучавствовыл... но проблема, что с паскалем плохо, в школе почти не было, а тут в инсте сразу завал... мне моей головой пока не понять. А в книге че-то ничего не ту... Мне бы хотя бы только алгоритм сжатия, с открытием файла я разберусь.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 22:03
blackhard   короче мой тебе совет напиши в платном разделе я з…   26.10.2007 3:00
klem4   я сделаю эту программу, только чуть позже, возможн…   26.10.2007 11:27
Malice   В 6 бит можно влезть без заглавных русских букв, в…   26.10.2007 14:40
Ozzя   можно без ё   26.10.2007 15:44
Malice   Ну в таком случае самый простой выход - задавать ч…   26.10.2007 16:45
volvo   Только если без знаков препинания. С ними число си…   26.10.2007 15:58
Гость   Спасибо, буду ждать. Мне сказали, что можно без…   26.10.2007 22:42
Гость   И вообще всем СПАСИБО, кто ответил   26.10.2007 22:42
Malice   Дел здесь на час максимум да и кода в полтора экра…   26.10.2007 23:02
Гость   Я бы поучавствовыл... но проблема, что с паскалем …   26.10.2007 23:06
Malice   Алгоритм простой: Выбираем используемый алфавит, ч…   27.10.2007 16:02
klem4   извиняюсь что с опозданием, времени совсем нету св…   30.10.2007 22:17
Гость   Спасибо большое) Как нибудь постараюсь отблагодари…   31.10.2007 2:38


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

 





- Текстовая версия 2.09.2025 9:52
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name