Установка сцены:
Это средний день, так как вы расслабляетесь после долгого дня, занимаясь своим любимым времяпрепровождением: отвечая на множество увлекательных вопросов о PPCG. Это был не хороший день для тебя; эти проклятые программисты Pyth продолжают получать лучший ответ, и это убивает ваше настроение. Неожиданно вы замечаете, что новый вопрос был опубликован! Вы решаете; не в этот раз CJammers. Яростно, вы начинаете печатать, рождая поток символов; плод славной петли BrainFuck, которым станет ваш конечный продукт. Вы печатаете и печатаете. Быстрее! Еще быстрее! Вы настолько сосредоточены, что даже не замечаете, что огни на вашем экране начинают мигать и выключаться. Внезапно монитор светится зеленым, на рабочем столе изображен символ, похожий на пришельца. Используя свои безупречные навыки, выcat ~/Desktop/aliensymbol
и получить с кучей чисел, сообщение! Будучи проницательным программистом PPCG, вы заметили, что это похоже на ASCII. Неважно для тебя, ты print(chr(i) for i in file)
и расшифруй сообщение. Ваша первая мысль: «Мне нужно поделиться этим с сообществом!».
...
Кто бы мог подумать? Что первыми, кто вступит в контакт с инопланетянами, будут скромные программисты PPCG. Почему нас? Может быть, это потому, что мы являемся воплощением человеческого интеллекта. Или, может быть, потому что BrainFuck примерно так же близок, как мы, к иностранному языку. Тем не менее, инопланетяне - будучи сверхинтеллектуальными формами жизни, которыми они являются - хотят проверить, должны ли они классифицировать человеческую расу как разумную или нет. В качестве проверки нашего умственного мастерства инопланетяне попросили нас отправить им несколько компьютерных программ, чтобы продемонстрировать, что мы технологически развиты. Вопрос в том, что единственный человеческий язык, который они понимают, это числовой ASCII!
Помогите человечеству показать тем существам, которые являются настоящей интеллектуальной альфой. Нам нужно отправить им скрипт, который преобразует наши текстовые исходные коды в их числовые версии ASCII. К сожалению, из-за нашей неразвитой технологии (спасибо Обаме), мы должны отправить как можно меньшую программу перевода. Хорошо, что они решили связаться с PPCG!
Соревнование:
Суть этой задачи проста: вы должны написать программу, которая будет брать исходный код любой программы (или любой общий текстовый файл в этом отношении) и выводить его разделенную пробелами версию с переводом ASCII ниже каждой строки. То есть, учитывая ввод текстового файла, вам необходимо вывести каждую строку этого файла, за которой следует строка, содержащая представление ASCII каждого символа в строке над ним (с каждым числом, совпадающим с символом, который он представляет).
Пример очень прояснит это. Принимая исходный код печально известного hello world
в качестве ввода:
#include <stdio.h>
int main() {
printf("hello, world\n");
return 0;
}
ваша программа должна вывести:
# i n c l u d e < s t d i o . h >
35 105 110 99 108 117 100 101 32 60 115 116 100 105 111 46 104 62 10
10
i n t m a i n ( ) {
105 110 116 32 109 97 105 110 40 41 32 123 10
p r i n t f ( " h e l l o , w o r l d \ n " ) ;
32 32 32 32 112 114 105 110 116 102 40 34 104 101 108 108 111 44 32 119 111 114 108 100 92 110 34 41 59 10
r e t u r n 0 ;
32 32 32 32 114 101 116 117 114 110 32 48 59 10
}
125 10
Детали реализации:
Вы можете выбрать ввод данных в любой форме, которую пожелаете (открытие файла, конвейер командной строки, параметр функции и т. Д.), И вам следует вывести на стандартный вывод или вернуть вывод из функции.
Что нужно отметить
- Каждый символ в выходных данных разделен символом '\ t', чтобы обеспечить возможность размещения строки из 3 цифр в строке ниже (мы будем предполагать, что для вашей вкладки установлено значение 4 или более пробелов).
- Новые строки отображаются в строке, в которой была нажата клавиша возврата (обратите внимание на 10 в примере)
- Требования к печати '\ t' и '\ n' невелики. Ваш вывод должен, в общем смысле, выглядеть приятным для глаз (нужно показать, что у этих инопланетян есть и эстетический смысл), и если вы сможете согнуть два предыдущих пункта, сохраняя визуальную целостность, вы будете прощены.
- Вы можете предположить, есть ли новая строка в конце последней строки.
счет
Это код-гольф, поэтому выигрывает самая короткая программа. Обратите внимание, что даже если ваша программа не самая короткая, но использует действительно изящные приемы относительно языка, который вы используете, многие +1 вам!
Удачи. Межгалактический рейтинг человечества лежит на ваших плечах.
Примечание: пожалуйста, прости сюжетные дыры. Я не писатель : D