Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
auqarisu
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 77
#1

Алгоритм на С/С++ не могу перевести в Паскаль! - C++

12.01.2012, 01:12. Просмотров 706. Ответов 10
Метки нет (Все метки)

Всем привет! Пишу курсовую по дискретной математике, задание написать архиватор текста! В книге Д. Ватолин, А. Ратушняк. - Методы сжатия данных, устройства архиваторов. Выбрал метод LZ78 и там дан пример алгоритма на С++ или С точно не могу сказать.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
n  =  1;
while   (  !  DataFile.EOF()   ){
s = DataFile.ReadSymbol; // читаем очередной  символ
/'пытаемся  найти в словаре фразу,  представляющую
собой конкатенацию  родительской  фразы с номером л и
символа s; функция  возвращает номер искомой  фразы
в phrase_num;  если же фразы нет, то phrase_num
принимает  значение 1, т. е. указывает на пустую  фразу
*/
FindPhrase  (&phrase_num, n,  s ) ;
if  (phrase_num  != 1)
/*такая фраза имеется в словаре, продолжим  поиск
совпадающей  фразы максимальной  длины
*/
n = phrase_num;  '
else {
/*такой фразы нет, запишем в выходной файл код;          :
INDEX_LN - это константа,  определяющая  длину
битового представления  номера n
*/
CompressedFile.WriteBits  (n, INDEX_LN);
CompressedFile.WriteBits  (s, 8) ;
AddPhrase  (n, s ) ; // добавим фразу в словарь
n = 1; // подготовимся к следующему шагу
// признак конца файла
CompressedFile.WriteBits  (0, INDEX_LN);
Времени у меня осталось мало, решил писать на паскале. С++ мы проходили но я его не очень хорошо понял, по сравнению с паскалем.
У меня возникла проблема. Что есть - "CompressedFile.WriteBits" ? В начале я думал это выходной файл в который записывается результат кодирования, но мне сказали что это какой то класс. Объясните пожалуйста!

З.Ы. Может вы знаете более простой алгоритм а реализации на паскале?
ссылка на скачивание книги
 Комментарий модератора 
А вот выкладывать книги без разрешения автора не надо!
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
12.01.2012, 01:17     Алгоритм на С/С++ не могу перевести в Паскаль! #2
CompressedFile - это объект какого-то класса, a CompressedFile.WriteBits(...) - вызов метода для этого объекта
auqarisu
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 77
12.01.2012, 01:18  [ТС]     Алгоритм на С/С++ не могу перевести в Паскаль! #3
А вы можете по подробнее рассказать?
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
12.01.2012, 01:19     Алгоритм на С/С++ не могу перевести в Паскаль! #4
Цитата Сообщение от auqarisu Посмотреть сообщение
А вы можете по подробнее рассказать?
куда уж подробней, ответ дан в рамках приведеного вами кода
auqarisu
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 77
12.01.2012, 01:26  [ТС]     Алгоритм на С/С++ не могу перевести в Паскаль! #5
Можете примерный вариант реализации на паскале показать?
я тут пытался вот результат:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
begin
     {otkrivaem fily}
     OpenFiles;
 
     while (not EoF(inf)) do
     begin
          n:=1;
          read(inf,s);
          phrase_num:=FindPhrase(n, s);
          if (phrase_num <> 1) then
             n:=phrase_num
          else
          begin
               write(outf, n:INDEX_LN, s:8);
               AddPhrase(n, s);
               n:=1;
          end;
     end;
 
     {zakryvaem faily}
     CloseFile;
end.
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
12.01.2012, 01:32     Алгоритм на С/С++ не могу перевести в Паскаль! #6
Цитата Сообщение от auqarisu Посмотреть сообщение
Можете примерный вариант реализации на паскале показать?
откуда мы знаем что внутри ваших классов? они не стандартны, привидите полный код на С++ мб тогда кто-нибудь и напишет вам на паскале
auqarisu
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 77
12.01.2012, 01:44  [ТС]     Алгоритм на С/С++ не могу перевести в Паскаль! #7
Не ловко как-то но весь код который у меня есть это то что написано в книге на странице 88. А ссылка на книгу указана выше, страницу с алгоритмом LZ78 не смог отделить. Подробнее можно посмотреть там
easybudda
12.01.2012, 01:54
  #8

Не по теме:

Цитата Сообщение от auqarisu Посмотреть сообщение
Подробнее можно посмотреть там
Вы лучше адрес напишите, куда подъехать и за Вас всё сдать...

auqarisu
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 77
12.01.2012, 02:02  [ТС]     Алгоритм на С/С++ не могу перевести в Паскаль! #9
Ясно, спс за помощь.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
12.01.2012, 03:25     Алгоритм на С/С++ не могу перевести в Паскаль! #10
auqarisu, понимаешь, то что ты дал называется псевдокод. то есть несет в себе смысловую нагрузку на уровне больше русского языка чем кода.
функции которые ты привёл придется в любом случае реализовывать самому.
Цитата Сообщение от auqarisu Посмотреть сообщение
В начале я думал это выходной файл в который записывается результат кодирования, но мне сказали что это какой то класс.
класс. лишь обертка для того самого файла результата.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2012, 15:01     Алгоритм на С/С++ не могу перевести в Паскаль!
Еще ссылки по теме:

Перевести с паскаль на С++ C++
C++ Перевести с Паскаль на С++
C++ Перевести код Паскаль на С++
Перевести с Паскаль на С++ C++
Подскажите как перевести из с++ в паскаль C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
auqarisu
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 77
12.01.2012, 15:01  [ТС]     Алгоритм на С/С++ не могу перевести в Паскаль! #11
Может быть кто нибудь знает хорошие книги про архивирование текста?
Yandex
Объявления
12.01.2012, 15:01     Алгоритм на С/С++ не могу перевести в Паскаль!
Ответ Создать тему
Опции темы

Текущее время: 10:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru