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

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

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

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

кафедра 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;

}

Результат:

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

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

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

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.