Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Для любителей подумать :) / 25 сообщений из 25, страница 1 из 1
03.06.2005, 13:23
    #33099623
alxfree
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
Если кому интересно есть такая задача:

Написать программу выводящую свой исходный текст.
Требования:
1. программа одномодульная (один файл)
2. из операций ввода/вывода разрешен только вывод

Сам потратил пару вечеров прикидывая как это сделать, а утром третьего дня написал.
Писать можно на любом языке (кому какой нравится).
...
Рейтинг: 0 / 0
03.06.2005, 13:26
    #33099644
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
Привет, alxfree!
Ты пишешь:

alxfree a> Если кому интересно есть такая задача:
a> Написать программу выводящую свой исходный текст.Баян!

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
03.06.2005, 14:33
    #33099866
XM
XM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
Причем очень древний баян http://en.wikipedia.org/wiki/Quine
...
Рейтинг: 0 / 0
03.06.2005, 17:22
    #33100439
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
alxfreeСам потратил пару вечеров прикидывая как это сделать,
Хм. Признаться, тут нечем гордиться.

Впрочем, упомяну решение, которое Вы скорее всего упустили из вида:

Код: plaintext
1.
2.
3.
 10  A$ = "Эта программа печатает собственный текст"
 20  B$ = "Она большая и сложная"
 30  LIST
...
Рейтинг: 0 / 0
04.06.2005, 08:57
    #33100900
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
softwarer
Код: plaintext
1.
 30  LIST

а здесь гарантированно нет операций ввода? например, с диска...
...
Рейтинг: 0 / 0
04.06.2005, 10:56
    #33100928
alxfree
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
softwarer alxfreeСам потратил пару вечеров прикидывая как это сделать,
Хм. Признаться, тут нечем гордиться.

Впрочем, упомяну решение, которое Вы скорее всего упустили из вида:

Код: plaintext
1.
2.
3.
 10  A$ = "Эта программа печатает собственный текст"
 20  B$ = "Она большая и сложная"
 30  LIST


Черт! Про это я даже не подумал :))
...
Рейтинг: 0 / 0
06.06.2005, 12:24
    #33102347
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
miksoftа здесь гарантированно нет операций ввода? например, с диска...
Логического - нет. Программа читается из памяти. Физически интерпретатору никто не запрещает свопить, но таким образом в любой программе может быть найден дисковый ввод.
...
Рейтинг: 0 / 0
06.06.2005, 13:02
    #33102455
Yossarian
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
2 softwarer

не проходит. в постановке задачи говорится что программа НЕ должна
использовать исходное представление своего текста (исходник) в
любом виде. а читать с диска как раз не запрещается.

Washington Irving
...
Рейтинг: 0 / 0
06.06.2005, 13:21
    #33102496
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
Yossarianне проходит. в постановке задачи говорится что программа НЕ должна использовать исходное представление своего текста (исходник) в
любом виде. а читать с диска как раз не запрещается.
Во-первых, советую прочитать первое сообщение топика, где как раз и дана постановка задачи. Если Вы имеете в виду какую-либо другую постановку - публикуйте ее.

Во-вторых, Ваша формулировка, как бы это выразиться, бредова. Поскольку почти любая программа такого рода как раз и использует то или иное специфическое представление своего исходника.

Почти любая - потому что я могу подсказать одну программу, выводящую полный текст своего исходника но не использующую его представления. Правда, создавать ее придется чуть необычно, например, следующей командой:

Код: plaintext
type nul > selflist.com
...
Рейтинг: 0 / 0
06.06.2005, 13:57
    #33102587
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
Подвох кроется в самой постановке. Лично
мне непонятно, что подразумевается под
ИСХОДНЫМ ТЕКСТОМ. Дамп памяти? Диз-
ассемблинг? Вообще я помню эту байду
еще с 1 курса универа. Любопытно наблюдать
как меняется подход к этой проблеме
у программистов разных эпох.

P.S. - Пилите, Шура! Пилите! (с) Пониковский.
...
Рейтинг: 0 / 0
06.06.2005, 14:20
    #33102643
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
maytonПодвох кроется в самой постановке.
Расшифруете? Не вижу подвоха; рядовая олимпиадная задача. И, признаться, я хоть и люблю иногда поиграть словами, но затрудняюсь понять затруднения в понимании того, что есть исходный текст программы.

Впрочем, могу дать определение: вывод программы (stdout) должен побайтово совпасть с исходником программы (текстом, поданным на вход ассемблеру или компилятору). Можно сделать послабления для переводов строк и white space, хотя не вижу в этом необходимости.
...
Рейтинг: 0 / 0
06.06.2005, 14:45
    #33102714
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
2 Softwarer

Вы хотите сказать, что написание
дизассеблера-декомпиллятора
это рядовая олимпиадная задача?
Или здесь снова подвох?
...
Рейтинг: 0 / 0
06.06.2005, 14:49
    #33102725
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
alert(document.scripts[0].Text);
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
06.06.2005, 16:09
    #33102970
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
maytonВы хотите сказать, что написание дизассеблера-декомпиллятора это рядовая олимпиадная задача?
Я хочу сказать, что для решения этой задачи обычно не требуется написание дизассемблера/декомпилятора, как минимум в тех постановках, в которых я ее видел (включая книгу семидесятых годов). Это задача на минимальное трюкачество, а не нудную аккуратную работу.
...
Рейтинг: 0 / 0
11.06.2005, 18:12
    #33113264
69bi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
На самом деле это древняя классическая задача, сродни задач Перельмана по математике, сродни задаче по программированию "Жизнь". Она приводиться в книге(автора к сожаденью не помню) "Этюды по прорграммированию" или "21 этюд по программированию". Она же была опубликована в известном журнале "Науке и жизнь".
В задаче есть различные ограничения по использованию опператоров, и не только ввода-вывода. В частности запрещается использовать оператор, который выводит листинг программы на экран. Таковым является оператор List в бейсике. И много ума не недо чтобы написать программу 10 List.
И естественно знающий человек сделал правильную постановку задачи, вот ее и надо найти, опубликовать и обсуждать, а не вырванную из контекста часть задачи.


69bi
...
Рейтинг: 0 / 0
11.06.2005, 20:41
    #33113314
Partisan M
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
Задача глупая, поэтому хоть она известно давно, мне не хотелось её решать. Но сейчас вот задумался, и за 1 секунду придумал решение.

Создать командный файл MS-DOS с именем например TakieZadachiTeperNaOlimpiadeReshajut_Hi_Hi.bat (название произвольное), со следующим содержимым:
TYPE TakieZadachiTeperNaOlimpiadeReshajut_Hi_Hi.bat

вызываем на выполнение, и видим на экране её текст:

TYPE TakieZadachiTeperNaOlimpiadeReshajut_Hi_Hi.bat
...
Рейтинг: 0 / 0
13.06.2005, 14:51
    #33114243
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
Partisan M
Забыл @ECHO OFF. Но это как раз попадает на ограничение чтения собственного текста с диска.

Задача действительно очень древняя, правда, я не вижу смысла искать ее "правильную", обставленную условиями постановку, по той простой причине, что она легко и просто решается без каких-либо читерских приемов, в лоб. Выверенная постановка задачи здесь потребует куда больше сил, нежели решение :)
...
Рейтинг: 0 / 0
23.06.2005, 04:32
    #33130185
Forgottn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
Ответ очень прост... Но, к сожалению, писал не сам... вот ее код на C:
main(a){printf(a,34,a="main(a){printf(a,34,a=%c%s%c,34;}",34);}
...
Рейтинг: 0 / 0
01.07.2005, 17:45
    #33145801
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
...
Рейтинг: 0 / 0
12.12.2005, 10:17
    #33429884
69bi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
Partisan M
Создать командный файл MS-DOS с именем например TakieZadachiTeperNaOlimpiadeReshajut_Hi_Hi.bat (название произвольное), со следующим содержимым:
TYPE TakieZadachiTeperNaOlimpiadeReshajut_Hi_Hi.bat

вызываем на выполнение, и видим на экране её текст:

TYPE TakieZadachiTeperNaOlimpiadeReshajut_Hi_Hi.bat

Ну командный файл это не программирование, дополнительно здесь не учитываются ограничения указанные в класической постановке. Например, использование оператора TYPE.

Partisan MЗадача глупая, поэтому хоть она известно давно, мне не хотелось её решать.

Она философская. Суть сводиться к построению программной самовоспроизводящейся системы не зависящей от внешних условий.
...
Рейтинг: 0 / 0
12.12.2005, 14:26
    #33430581
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
alxfreeЕсли кому интересно есть такая задача:

Написать программу выводящую свой исходный текст.
Требования:
1. программа одномодульная (один файл)
2. из операций ввода/вывода разрешен только вывод

Сам потратил пару вечеров прикидывая как это сделать, а утром третьего дня написал.
Писать можно на любом языке (кому какой нравится).
Код: plaintext
1.
2.
 x "zl "_$zname zp
 q
Из операций ввода-вывода - только zp, это вывод. zl читает из уже имеющегося буфера в памяти, ибо прога уже исполняется а значит уже сидит в памяти.
...
Рейтинг: 0 / 0
13.12.2005, 09:07
    #33431982
MX -- ALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
ну я alxfreeЕсли кому интересно есть такая задача:

Написать программу выводящую свой исходный текст.
Требования:
1. программа одномодульная (один файл)
2. из операций ввода/вывода разрешен только вывод

Сам потратил пару вечеров прикидывая как это сделать, а утром третьего дня написал.
Писать можно на любом языке (кому какой нравится).
Код: plaintext
1.
2.
 x "zl "_$zname zp
 q
Из операций ввода-вывода - только zp, это вывод. zl читает из уже имеющегося буфера в памяти, ибо прога уже исполняется а значит уже сидит в памяти.

p

-если уже сидит :)
...
Рейтинг: 0 / 0
13.12.2005, 21:11
    #33434336
toljan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
Разумнее всего написать программу, в которой нет операторов, и она ничего не делает, следовательно, не выводит ничего на экран, а ничего - это ее содержимое, т.е. условие выполнено.
...
Рейтинг: 0 / 0
14.12.2005, 11:02
    #33435041
toljan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
ForgottnОтвет очень прост... Но, к сожалению, писал не сам... вот ее код на C:
main(a){printf(a,34,a="main(a){printf(a,34,a=%c%s%c,34;}",34);}
а библиотечку для ввода-вывода подключить-то надо...
без
#include <stdio.h>
или еще чего-то такого работать не будет...
...
Рейтинг: 0 / 0
14.12.2005, 12:54
    #33435402
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для любителей подумать :)
toljanРазумнее всего написать программу, в которой нет операторов, и она ничего не делает, следовательно, не выводит ничего на экран, а ничего - это ее содержимое, т.е. условие выполнено.
Я конечно понимаю, что к концу обсуждения лень читать начало..... http://sql.ru/forum/actualthread.aspx?tid=189470#1599402
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Для любителей подумать :) / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]