Задача 11: Коррекция кода.
По некоторому каналу связи передается сообщение, имеющее вид
последовательности нулей и единиц. Из-за помех возможен ошибочный
прием некоторых сигналов: нуль может быть воспринят как единица и
наоборот. Для повышения вероятности правильного приема сигналов было
решено передавать каждый сигнал трижды. Теперь передатчик вместо 1
всегда передает 111, а вместо 0 всегда 000.
Вам предлагается написать программу, которая будет восстанавливать
исходное сообщение. При передаче могли произойти ошибки, поэтому
вместо каждой тройки цифр программа должна вывести ту цифру, которая
встречается в этой тройке по крайней мере два раза.
Формат входных данных
Во входном файле одна строка, в которой могут быть только символы
"0" и "1". Длина строки - число, кратное трем, большее двух и
меньшее 760.
Формат выходных данных
Вы должны вывести в одну строку раскодированное сообщение.
Пример ввода
110111010001
Правильный вывод для примера
1100
Решение:
Это задача B с командного турнира по программированию "ИМ-Y2K" в
СамГУ.
Она тоже простая. Достаточно организовать два цикла: один вида
repeat ... until EOF
и другой, вложенный в него
for x := 1 to 3 do ...
В начале первого цикла мы обнуляем значение некоторой переменной, а
во втором цикле, если нам встретилась "1", увеличиваем значение этой
переменной на 1. По окончании работы цикла for проверяем: если
значение переменной равно 2 или 3, то выводим "1", если 0 или 1 то
"0".
Просто!
Далее
ð