Напишите программу, которая кодирует данный текст в свой собственный текст, предоставленный в качестве ввода, не нарушая его логику. Программа также должна работать как декодер, восстанавливая исходное сообщение из его текста. Он должен сохранять свои функции кодирования / декодирования после преобразования.
Говоря более формально, требуемая программа P должна выполнить следующие преобразования с заданным текстом сообщения M:
P (M, P) -> P *
P * (P *) -> M
Здесь P * - преобразованная программа, которая также должна удовлетворять вышеуказанным правилам, а именно:
P * (M2, P *) -> P **
P ** (P **) -> M2
и так далее ... Каждая последующее кодирование не стирает ранее закодированный текст, поэтому P ** несет два сообщения - M и M2.
Самый простой способ для программы отличить режимы кодирования / декодирования - это наличие дополнительного аргумента M, но окончательное решение остается за вами, если оно четко указано. Программа может прочитать свой собственный текст из файла. Если на выбранном языке нет средств для этого, исходный текст можно передать в программу любым другим способом.
Конечно, есть тривиальные решения, так что это скорее конкурс популярности. Тем не менее, я накладываю ограничение на запрет комментариев в тексте программы.