powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Для любителей подумать :)
25 сообщений из 25, страница 1 из 1
Для любителей подумать :)
    #33099623
alxfree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если кому интересно есть такая задача:

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

Задача действительно очень древняя, правда, я не вижу смысла искать ее "правильную", обставленную условиями постановку, по той простой причине, что она легко и просто решается без каких-либо читерских приемов, в лоб. Выверенная постановка задачи здесь потребует куда больше сил, нежели решение :)
...
Рейтинг: 0 / 0
Для любителей подумать :)
    #33130185
Forgottn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ответ очень прост... Но, к сожалению, писал не сам... вот ее код на C:
main(a){printf(a,34,a="main(a){printf(a,34,a=%c%s%c,34;}",34);}
...
Рейтинг: 0 / 0
Для любителей подумать :)
    #33145801
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Для любителей подумать :)
    #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
Для любителей подумать :)
    #33430581
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alxfreeЕсли кому интересно есть такая задача:

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

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

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

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

p

-если уже сидит :)
...
Рейтинг: 0 / 0
Для любителей подумать :)
    #33434336
toljan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разумнее всего написать программу, в которой нет операторов, и она ничего не делает, следовательно, не выводит ничего на экран, а ничего - это ее содержимое, т.е. условие выполнено.
...
Рейтинг: 0 / 0
Для любителей подумать :)
    #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
Для любителей подумать :)
    #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]