АВТ
Язык:

Дистанционный практикум по программированию

Задачи Online статус Соревнования
Новости Справка СДО
 
Здравствуйте, Гость! Войдите с паролем или зарегистрируйтесь.

497. ПДИУС Вариант №01

Ограничение времени: 10 сек.
Ограничение памяти:65536 КБайт
Баллы:100
Статистика Послать на проверку Задачу добавил Носов Денис Александрович

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

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

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


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

Реализовать функции кодирования и декодирования по следующим прототипам:
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;
}

Статистика Послать на проверку Обсуждение задачи Автор/источник:
Учебные курсы / Передача данных в ИУС /
497. 498. ПДИУС Вариант №02 499. ПДИУС Вариант №03 500. ПДИУС Вариант №04
 
время генерации 0.094 сек.
© Copyright ВоГУ, АВТ, Носов Д.А., Андрианов И.А.