Квайн на Паскале

Не будем сейчас останавливаться на том, кем или чем был Квайн, главное – это имя собственное начало использоваться для именования программ, которые выводят в результате исполнения свой собственный код. Впрочем, если я правильно помню, был некий журналист Qwine, который очень любил к месту и не к месту цитировать себя любимого.

Вернемся к определению квайнов. Для непосредственного описания задачи есть два важных ограничения. Первое – нельзя использовать оператора чтения в теле программы. Второе – нельзя использовать особенности синтаксиса языка, которые позволяют получить доступ к тексту программы. Первое ограничение очевидно, как, впрочем, и второе. Например, в классическом Бейсике есть команда list. Она, собственно, и выводит текст программы на экран.

Сейчас я дам подсказку, какую функцию Паскаля нужно вспомнить, чтобы, немножко подумав, написать квайн. Эта функция CHR. По идее, больше ничего не нужно. Другое дело, что додуматься удается далеко не каждому начинающему программисту на Паскале.

А вот листинг требуемого квайна:

Листинг №5

Естественно, заполнить массив letters нужными кодами нужно самому. Подсказка: код нужного символа вы можете получить при помощи команды write(ord(‘p’)). Код пробела – 32, код перевода строки – 13.

Оставьте свой комментарий

десять − 4 =

Navigate