АВТ
Language: Russian
English

Remote Training on Programming

Problems Online status Contests
News FAQ E-learning
For authors:
Register  ||  Login
 
Hello, Guest! Please login or register.

528. PDIUS Var #33

Time Limit: 10 seconds
Memory Limit:65536KB
Points:100
View Problem Statistics Submit Problem added Носов Денис Александрович

В контрольном задании рассматривается цифровая система передачи информации в структуре информационно управляющей сети, предназначенная для сбора некоторой технологической информации.
Разрабатываемая система является одноканальной, без обратной связи и использует симметричный канал. В полученной системе вероятность ошибки на параметр не должна превышать 0.1%.
Избыточность кода должна быть минимум на 20% меньше чем у кода с повтором символов, который удовлетворяет заданным параметрам.

Исходные данные:

№ вар.Количество технол. Парам.Средняя разрядность парам. в десятичных цифрах Частота опроса парам., ГцВероятность ошибки на символТип канала передачи данныхВид СПИ
3365600.2ТрСКСинхр.


Разработать консольную программу на языке С++, реализующую выбранный метод кодирования с использованием рассчитанных параметров.

Реализовать функции кодирования и декодирования по следующим прототипам:
char* Encoding(const int *arr, int size_arr, int &size_data);
int* Decoding(const char *data, int size_data, int &size_arr);

Для выполнения начальных расчетов и инициализации реализовать функцию:
void Initialization(void);

Для двоичного канала функция Encoding должна возвращать указатель на строку состоящую из символов "0" и "1".
arr - это массив 10-чных параметров.
Функция Encoding должна выделять память под возвращаемую строку. Освобождать её не требуется.
Функция Decoding должна выделять память под возвращаемый массив декодированных параметров. Освобождать её не требуется.


Для проверки работоспособности в программу будет включатся специальный заголовочный файл содержащий функцию main, из которой и будут производится вызовы разработанных функций Encoding и Decoding. Для этого в начало программы добавьте строчку:
#include <pdius_r.h>

Пример программы:
#include <pdius_r.h>

//константы и глобальные переменные
const int M=10,K=12,N=M+K;

//инициализация
void Initialization(void)
{
   randomize();
}

//кодирование
char* Encoding(const int *arr, int size_arr, int &size_data)
{
   char *res;
   int i;

   size_data=N*size_arr; //размер возвращаемой строки
   res=new char[size_data]; //выделение памяти под возвращаемую строку

   //здесь должно присутствавать само кодирование по выбранному методу
   for (i=0;i<size_data;i++)
      res[i]=rand()%2+'0';

   //возвращаем указатель на закодированную строку
   return res;
}

//декодирование
int* Decoding(const char *data, int size_data, int &size_arr)
{
   int *arr;
   int i;

   size_arr=size_data/N; //размер возвращаемого массива параметров
   arr=new int[size_arr]; //выделение памяти под возвращаемы массив параметров

   //здесь должно присутствавать само декодирование по выбранному методу
   for (i=0;i<size_arr;i++) 
      arr[i]=rand()%1000;

   //возвращаем указатель на массив декодированных параметров
   return arr;
}

View Problem Statistics Submit Problem discussion Author/source:
Educational Courses / PDIUS /
527. PDIUS Var #32 528. 529. PDIUS Var #34 530. PDIUS Var #35 531. PDIUS Var #36
time generating 0.11 sec.
© Copyright VSU, AVT, Nosov D.A., Andrianov I.A.