Сломанный телеграф (ОКД НТИ 20/21 :: ТБС)
Легенда
Вам в руки попал старый датчик для анализа электрических полей, передающий данные по радиоканалу, и вы решили его проверить. На самом датчике вы заметили надпись «ParityBitSuffix», из чего вы решили, что при отправке данных используется контроль целостности с помощью контрольного бита чётности.
Для проверки вы прикрепили датчик к щитку электропитания и собрали набор данных. Просмотрев полученный набор, вы видите, что датчик передает отдельные пакеты в виде непустых ASCII-строк, где символы представляются 7-разрядными двоичными кодами (в порядке от старшего бита к младшему), а в конце строки присоединяется контрольный бит. Сама же передача происходит с большим количеством помех, на чём сказался возраст датчика. И глядя на полученные данные, вам не удалось понять, какое именно значение чётности является корректным для этого кода.
Для правильной работы с датчиком напишите программу, которая будет определять четность кода, если известно, что количество помех не больше 40%, и двойная ошибка в одной
строке
исключена. Также программа должна выводить декодированные строки из ASCII-символов. Если в отдельной строке допущена ошибка, то вся строка
должна быть заменена на символ *
.
Принцип решения
- Реализация