|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.05.2016, 18:26 | #1 |
Пользователь
Регистрация: 14.05.2016
Сообщений: 11
|
Просьба подсказать начинающему. C++. восстановить искаженное сообщение, переданное с утроением каждого бита
Добрый день, Друзья. Я впервые на данном форуме, да и язык си++ только начинаю постигать. Поэтому прошу Вас навести меня на путь истинный в следующей задаче:
По каналу связи передаётся сообщение, имеющее последовательность 0 и 1. Существуют помехи и для повышения надёжности каждый сигнал передаётся трижды. Теперь 1=111, а 0=000. В сообщении могли возникнуть ошибки, а поэтому вместо тройки цифр программа должна вывести ту, которая встречается по крайней мере 2 раза. Длина сообщения - число кратное трём, больше 2-х и меньше 760. Вот пример вводных данных 100111011. Вот то, что должна вывести программа: 011. Вот я начал писать программу: Код:
Была идея разбить число с помощью массива, но для сравнения чисел нам нужны переменные, а при "разбитии" мы просто ставим пробелы между символами. Выскажите, пожалуйста своё мнение и подтолкните меня в верном направлении. Заранее спасибо. Пожалуйста, оформляйте Ваш код согласно правилам. Последний раз редактировалось Вадим Мошев; 14.05.2016 в 20:57. |
14.05.2016, 19:15 | #2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
что нам нужно, так это ЦИКЛ. (перебор от первого до последнего символа)
и ДВА счетчика( переменные) для ПОДСЧЕТА встретившихся нулей и единиц. 0. обнулить счетчики и встать в начало. 1. перейти к следующему и если мы дошли до конца то закончить работу. 2. если текущий символ =0 то увеличить счетчик_нулей иначе увеличить счетчик_единиц 3. если мы НЕнасчитали ТРИ знака {счетчик_нулей + счетчик_единиц <3 } то продолжить счет (вернуться к п.1) 4. {значит мы уже просчитали три нужных нам знака, будем выводить} если счетчик_нулей>счетчик_единиц то вывести ноль иначе вывести единицу 5. {а теперь нам пора начинать счет заново} обнулить счетчики и продолжить счет (опять вернуться к п.1)
программа — запись алгоритма на языке понятном транслятору
|
14.05.2016, 19:22 | #3 |
Пользователь
Регистрация: 14.05.2016
Сообщений: 11
|
Спасибо, буду пробовать(:
|
14.05.2016, 19:56 | #4 |
Пользователь
Регистрация: 14.05.2016
Сообщений: 11
|
С исходным кодом не задалось. Вот я выслушал ваши советы и что-то неладное написал. Видимо не осознают, что делать надо. Посмотрите, пожалуйста.
Код:
Последний раз редактировалось Вадим Мошев; 14.05.2016 в 20:58. |
14.05.2016, 20:59 | #5 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Код:
P.P.S. Да и начальная (до цикла) установка в 0 не помешала бы.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 15.05.2016 в 09:42. |
15.05.2016, 12:43 | #6 |
Пользователь
Регистрация: 14.05.2016
Сообщений: 11
|
Код:
|
15.05.2016, 14:14 | #7 |
Пользователь
Регистрация: 14.05.2016
Сообщений: 11
|
Может вот так сделать?
Код:
|
15.05.2016, 15:06 | #8 |
Форумчанин
Регистрация: 23.01.2016
Сообщений: 608
|
...зачем изобретать велосипед, когда есть коды Рида-Соломона. А за отсутствие контрольной суммы вообще по рукам надо бить.
|
15.05.2016, 18:59 | #9 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
Цитата:
Код:
программа — запись алгоритма на языке понятном транслятору
|
||
15.05.2016, 20:15 | #10 |
Пользователь
Регистрация: 14.05.2016
Сообщений: 11
|
Буду пробовать. Вы не против, если буду задавать вопросы, если возникнут?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
масм на 64 бита | :=) | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 16 | 26.08.2012 23:19 |
В слове (16bit) заменить 4-бита | Tronix | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 26.07.2012 11:31 |
изменение бита в числе | Kukurudza | Общие вопросы C/C++ | 5 | 25.10.2011 23:16 |
Проверка установленности 0-го бита | Sianukvil | Общие вопросы C/C++ | 0 | 01.06.2010 17:09 |
C++ получение конкретного бита... | SNUPY | Помощь студентам | 2 | 26.03.2009 18:50 |