Кодирование и декодирование. Реализация помехоустойчивого кода по алгоритму Хэмминга для символов из таблицы кодов ASCII от 60 до 70

Страницы работы

Содержание работы

кафедра 304

Лабораторная работа № 3

по предмету «Дискретная математика»

Выполнила студентка 325 гр.

Старцева А. В.

Проверил доц. каф 304

Чернышов Ю. К.

______________________

Кодирование и декодирование

Цель: реализовать помехоустойчивый код по алгоритму Хэмминга
Постановка задачи: Реализовать  помехоустойчивый код по алгоритму Хэмминга для символов  из  таблицы кодов ASCII  от 60 до 70.


Код программы:

#include "stdafx.h"

#include <iostream>

#include <string>

#include <cmath>

#include <conio.h>

#include "cstdlib"

const int n=20;

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{   setlocale(LC_ALL,"rus");

       int k;//вводим число для перевода в двоичное

       cout<<"Введите число для перевода в двоичную систему от 60 до 70"<<endl;

       cin>>k;//считываем его

       int symb=k;

       int rez[n];// массив для хранения рез-та

       int i=0;// счетчик

       while(k>0)

       {

             rez[i]=k%2;//если к целочисленно делится на 2, то записыаем 0, если нет - 1

       k=k/2;//к присваиваем к/2

       i++;//увеличиваем счетчик

       }

int j=i;//задаем переменную для "переворота" массива

cout<<"В двоичной системе:"<<endl;

for(i=j-1;i>=0;i--)

       {

             cout<<rez[i];//результирующий масив

       }

cout<<endl;

int for_hem[8];

int cr=j-1;

       for (int g=8; g>0;g--)

       {

             {

                    if(cr>=0)

                    for_hem[g]=rez[cr];

                    else

                    for_hem[g]=0;

             }

             --cr;

       }

       cout<<"В восьмибитной системе:"<<endl;

for(int count=1;count<=8;count++)

{

       cout<<for_hem[count];

}

int hem[12];

if((for_hem[1]+for_hem[2]+for_hem[4]+for_hem[5]+for_hem[7])%2==0)

       hem[1]=0;

else

       hem[1]=1;

if((for_hem[1]+for_hem[3]+for_hem[4]+for_hem[6]+for_hem[7])%2==0)

       hem[2]=0;

else

       hem[2]=1;

if((for_hem[2]+for_hem[3]+for_hem[4]+for_hem[8])%2==0)

       hem[4]=0;

else

       hem[4]=1;

if((for_hem[5]+for_hem[6]+for_hem[7]+for_hem[8])%2==0)

       hem[8]=0;

else

       hem[8]=1;

hem[3]=for_hem[1];

hem[5]=for_hem[2];

hem[6]=for_hem[3];

hem[7]=for_hem[4];

hem[9]=for_hem[5];

hem[10]=for_hem[6];

hem[11]=for_hem[7];

hem[12]=for_hem[8];

cout<<endl;

cout<<"Код Хэмминга:"<<endl;

for(int pr=1;pr<=12;pr++)

       {

             cout<<hem[pr];

       }

cout<<endl;

if(symb==60)

       {

             cout<<"Символ в ASCII: <"<<endl;

       }

if(symb==61)

       {

             cout<<"Символ в ASCII: ="<<endl;

       }

if(symb==62)

       {

             cout<<"Символ в ASCII: >"<<endl;

       }

if(symb==63)

       {

             cout<<"Символ в ASCII: ?"<<endl;

       }

if(symb==64)

       {

             cout<<"Символ в ASCII: @"<<endl;

       }

if(symb==65)

       {

             cout<<"Символ в ASCII: A"<<endl;

       }

if(symb==66)

       {

             cout<<"Символ в ASCII: B"<<endl;

       }

if(symb==67)

       {

             cout<<"Символ в ASCII: C"<<endl;

       }

if(symb==68)

       {

             cout<<"Символ в ASCII: D"<<endl;

       }

if(symb==69)

       {

             cout<<"Символ в ASCII: E"<<endl;

       }

if(symb==70)

       {

             cout<<"Символ в ASCII: F"<<endl;

       }

       system("pause>>NULL");

       return 0;

}

Результат:

Вывод: На этой лабораторной работе, я научилась реализовать помехоустойчивый код по алгоритму Хэмминга

Похожие материалы

Информация о работе