Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 07.03.2013, 12:20   #1
darkpaul
 
Регистрация: 07.03.2013
Сообщений: 3
По умолчанию написать программу декодирования

Помогите написать программу пожалуйста!

Декодирование префиксным кодом. Имеется префиксный код, состоящий из m двоичных кодовых слов различной длины, которым закодировано m символов некоторого алфавита А. Вводится последовательность двоичных символов произвольной длины и программа осуществляет попытку её декодирования в указанные символы с выдачей результата декодирования или сообщения об ошибке.

Желательно на паскале

Последний раз редактировалось darkpaul; 07.03.2013 в 14:56.
darkpaul вне форума
Старый 07.03.2013, 12:54   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Какая помощь Вам нужна?
Abstraction вне форума
Старый 07.03.2013, 12:56   #3
darkpaul
 
Регистрация: 07.03.2013
Сообщений: 3
По умолчанию

написать программу =)
darkpaul вне форума
Старый 07.03.2013, 14:22   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Просите - и получите...
Код:
#define BuildNode(L,R) const char* ReadNode##L##R (void){ \
  char bit; \
  if(scanf("%c", &bit) != 1) {Last = #L; return NULL;} \
  if(bit == '1') return ReadNode##L(); \
  if(bit == '0') return ReadNode##R(); \
  Last=#L; return NULL; \
}
#define BuildLeaf(L) const char* ReadNode##L (void) {return #L;}
const char* Last;

BuildLeaf(A)
BuildLeaf(B)
BuildLeaf(C)
BuildLeaf(D)
BuildLeaf(E)
BuildLeaf(F)
BuildLeaf(G)
BuildLeaf(H)

BuildNode(A,D)
BuildNode(B,G)
BuildNode(BG,F)
BuildNode(C,H)
BuildNode(AD,BGF)
BuildNode(E,CH)
BuildNode(ADBGF,ECH)

#define ReadWord ReadNodeADBGFECH
#define Correct "ADBGF"

int main(void){
  const char* str;
  while((str = ReadWord()) != NULL) printf("%s", str);
  if(strcmp(Last, Correct) != 0) printf("\nUnexpected symbol or premature end of data!\n");
  return 0;
}
Abstraction вне форума
Старый 07.03.2013, 14:44   #5
darkpaul
 
Регистрация: 07.03.2013
Сообщений: 3
По умолчанию

Спасибо =)

А можно на Паскале? 0=)

Последний раз редактировалось darkpaul; 07.03.2013 в 14:50.
darkpaul вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа кодирования-декодирования Deathmand Фриланс 9 19.03.2012 08:56
Программа кодирования-декодирования Deathmand Помощь студентам 0 07.03.2012 09:07
Написать программу для перевода из 16-ричной системы счисления в 10-тичную, использовать процедурую(написать Delphi) BLADIMIR Помощь студентам 3 07.09.2011 16:35
Нужна функция декодирования PDU AquaKlaster Общие вопросы Delphi 5 03.10.2010 15:45