кафедра 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;
}
Результат:
Вывод: На этой лабораторной работе, я научилась реализовать помехоустойчивый код по алгоритму Хэмминга
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.