2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2, 3, 4
 
 Re: Получила ли программа свой же код на вход?
Сообщение17.09.2014, 20:07 

(Оффтоп)

joke-100 в сообщении #908836 писал(а):
Тем более странно, что множество так называемых "ученых" столько жужжат про эти квайны, научные теории строят. Просто бред.
Понял. Они вам спать не дают, через стенку орут.

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение16.10.2014, 15:42 
Программа на Delphi/Паскаль
var s:string='var s:string=;begin insert(#39+s+#39,s,14);write(s)end.'; begin insert(#39+s+#39,s,14);write(s)end.
печатает var s:string=;begin insert(#39+s+#39,s,14);write(s)end., но это только часть программы. Где остальной текст, выделенный чёрный цветом?
Это программа начального этапа изучения программирования. Называть её программа печатающая свой текст - это непонимание, что такое программа.
С таким же усрехом переменной string можно присвоить текст доказательства теоремы Пифагора, и сказать: "Вот программа, доказывающая теорему Пифагора".

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение16.10.2014, 15:56 
Аватара пользователя
Skeptic в сообщении #919550 писал(а):
Программа на Delphi/Паскаль
var s:string='var s:string=;begin insert(#39+s+#39,s,14);write(s)end.'; begin insert(#39+s+#39,s,14);write(s)end.
печатает var s:string=;begin insert(#39+s+#39,s,14);write(s)end.
Нет, программа печатает не это. Вы ее запускали?

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение16.10.2014, 18:56 
Xaositect в сообщении #919557 писал(а):
Нет, программа печатает не это. Вы ее запускали?
Xaositect, к чему лишние вопросы? Если вы знаете, что напечатает программ, то напишите. Всего-то делов.

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение16.10.2014, 21:53 
Skeptic, следует указывать версию диалекта и компилятора.
В Embarcadero XE4, win32 программа
var s:string='var s:string=;begin insert(#39+s+#39,s,14); write(s)end.';
begin
insert(#39+s+#39,s,14);
write(s)
end.

выведет на экран: var s:string='var s:string=;begin insert(#39+s+#39,s,14); write(s)end.';begin insert(#39+s+#39,s,14); write(s)end.

В ранних версиях BP программа не будет скомпилирована, поскольку инициализированные переменные в этих диалектах должны были описываться как константы (const).

-- Thu 16.10.2014 21:26:26 --

(Первоначально ошибся. Ошибочный текст был удалён 16.10.2014.)
В Delphi 5 программа выведет:
var s:string='var s:string=;begin insert(#39+s+#39,s,14); write(s)end.';begin insert(#39+s+#39,s,14); write(s)end.

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение17.10.2014, 08:09 
Вы ещё проверьте разные версии компилятора с Паскаля.
Программа взята статьи "Куайн" в Википелии.
Неужели не понятно, что эта детсадовская программа печатает не свой текст, а то, что ей подсунут в переменной $s$?

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение17.10.2014, 08:33 
Skeptic
Skeptic в сообщении #919805 писал(а):
Неужели не понятно, что эта детсадовская программа печатает не свой текст, а то, что ей подсунут в переменной $s$?
Как ни странно, Вы не правы. В интернете можно встретить мириады онлайн-компиляторов, с которыми проверка подобных утверждений $\text{---}$ дело пары секунд.

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение17.10.2014, 11:55 
Skeptic, можно сказать, что изначально в переменную s заносится исходный текст программы «без значения, которое присваивается этой переменной». В теле программы в эту переменную вставляется её же значение, обрамлённое символами кавычек (ASCII код этого символа 39) для добавления «изначально отсутствующей части» (insert(#39+s+#39,s,14)). Откомпилированная в двух разных компиляторах (Embarcarero XE4 win32 и Borland Delphi 5) программа выводит на консоль тот текст, который и ожидается, а именно исходный текст программы. Я специально копировал для вставки в предыдущее сообщение выведенные программами тексты.

Я первоначально подумал, что Вы обнаружили компилятор, неправильно генерирующий код. Вы не привели подтверждение словам
Skeptic в сообщении #919550 писал(а):
Программа на Delphi/Паскаль
var s:string='var s:string=;begin insert(#39+s+#39,s,14);write(s)end.'; begin insert(#39+s+#39,s,14);write(s)end.
печатает var s:string=;begin insert(#39+s+#39,s,14);write(s)end., но это только часть программы. Где остальной текст, выделенный чёрный цветом?

Да, конечно, программа выводит [почти] тот текст, который зададут при инициализации переменной s. Если зададут правильный текст, то программа выведет свой исходный текст. Если неправильный, то выведет не свой исходный текст. Это очевидно.

Пожалуйста, заканчивайте разжигать флейм на пустом месте.

 
 
 [ Сообщений: 53 ]  На страницу Пред.  1, 2, 3, 4


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group