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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2011, 19:14   #1
bondleha
Пользователь
 
Регистрация: 19.04.2010
Сообщений: 10
По умолчанию C++Builder Коды Хэмминга

Вопрос такого плана как в билдере реализовать вот эту задачку:
1. Создать приложение, осуществляющее кодирование информации кодом Хэмминга значностью 11 с исправлением одиночной ошибки.
2. Создать приложение, осуществляющее декодирование информации кодом Хэм-минга значностью 11 с исправлением одиночной ошибки.
За ранее спасибо!! Всю голову сломал!! Были наброски, но не то!!
bondleha вне форума Ответить с цитированием
Старый 17.04.2011, 19:15   #2
VKorablev
Форумчанин
 
Аватар для VKorablev
 
Регистрация: 14.04.2011
Сообщений: 126
По умолчанию

наброски покажите, хоть и не то, но хочется их увидеть
Нам больше не нужно смотреть на мир сквозь замочную скважину 64Кб сегмента (с) ВалИк
VKorablev вне форума Ответить с цитированием
Старый 17.04.2011, 19:22   #3
bondleha
Пользователь
 
Регистрация: 19.04.2010
Сообщений: 10
По умолчанию

Блина!! забыл в интсте!! Тогда позже скину!!А у вас нету конкретных примеров?? просто все равно заново писать!! А с кодировкой особо не работал поэтому в этом ваще лузер!!
bondleha вне форума Ответить с цитированием
Старый 18.04.2011, 18:01   #4
bondleha
Пользователь
 
Регистрация: 19.04.2010
Сообщений: 10
По умолчанию

Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "math.h"
#include "stdlib.h"


//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
unsigned NextPos(bool reset)
{
   static unsigned cnt;

   cnt = reset ? 0 : cnt+1;

   return (pow(2, cnt) - 1);
}
void GetSequence(bool *code, unsigned size, unsigned char key)
{
   unsigned pos = NextPos(true);
   
   unsigned i;
   unsigned crc = 0;
   for (i = 0; i < size; ++i)
   {
      if (pos == i)
      {
         code[i] = false;
         pos = NextPos(false);
      }
      else
      {
         code[i] = key & 0x1;
         if (code[i])
         {
            crc ^= i + 1;
         }
         key >>= 1;
      }
   }
   
   pos = NextPos(true);
   
   while (pos < size)
   {
      code[pos] = crc & 0x1;
      crc >>= 1;
      pos = NextPos(false);
   }
}
//----------------------------------------------//
unsigned CheckCRC(bool *code, unsigned size)
{
   unsigned i;
   unsigned crc = 0;

   for (i = 0; i < size; ++i)
   {
      if (code[i])
      {
         crc ^= i + 1;
      }
   }
   
   return crc;
}
//----------------------------------------------//
void PrintSequence(bool *code, unsigned size)
{
   unsigned index = size;
   while (index--)
   {
     Memo1->Lines->Add(code[index]);
   }
 }
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int a=atoi(Edit1->Text.c_str());
int b=atoi(Edit2->Text.c_str());
   bool code[12];
   unsigned size = sizeof(code) / sizeof(*code);
   unsigned char key;
    a=key;
    GetSequence(code, size, key);
   
   Memo1->Lines->Add(key);
   PrintSequence(code, size);
   unsigned number = 0;

  b=number;
   if (--number < size)
   {
      code[number] = !code[number];
   }
   
   Memo1->Lines->Add("bad");
   PrintSequence(code, size);
   
  Memo1->Lines->Add(CheckCRC(code, size));
   
   // system("pause");

   return 0;
}
//---------------------------------------------------------------------------
вот наброски
bondleha вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сокращение расстояния Хэмминга Molotoff Общие вопросы C/C++ 1 14.01.2011 11:48
Код Хэмминга 0479 Помощь студентам 0 12.11.2010 10:32
растояние Хэмминга semennn Помощь студентам 0 06.05.2009 19:11
Borland C++Builder почему он не складывает коды символов тут? BattleMage C++ Builder 1 29.09.2007 08:56