Форум: "Потрепаться";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
Внизпрограмма печатает сама себя??? Найти похожие ветки
← →
p_albert77@mail.ru (2002-10-27 01:19) [0]Hello all Masters! Please say me how solve next problem:
программа печатает сама себя??? Можно на чем хотите - хоть на Паскале, хоть на Асме, хоть на Си (но не предлагайте печать из файла). Это не лаба или курсовик. Просто знакомый говорит что это в принципе невозможно, а мне кажется что как-то можно. Но не могу придумать никак!!! Заранее сенкс всем.
← →
down (2002-10-27 01:24) [1]еще как возможно
program autoprint;
var i:byte;c:array[1..11]of string;
begin
c[1]:="program autoprint;";
c[2]:="var i:byte;c:array[1..13]of string;";
c[3]:="begin";
c[4]:=" for i:=1 to 3 do writeln(c[i]);";
c[5]:=" for i:=1 to 10 do writeln(c[11,8],c[11,8],c[11,1],c[11,2],i,";
c[6]:=" copy(c[11],3,4),c[i],c[11,6],c[11,7]);";
c[7]:=" writeln(c[11,8],c[11,8],c[11,1],c[11,2],11,copy(c[11],3,4),";
c[8]:=" copy(c[11],1,6),copy(c[11],6,3),c[11,6],c[11,7]);";
c[9]:=" for i:=4 to 10 do writeln(c[i]);readln;";
c[10]:="end.";
c[11]:="c[]:=""; ";
for i:=1 to 3 do writeln(c[i]);
for i:=1 to 10 do writeln(c[11,8],c[11,8],c[11,1],c[11,2],i,
copy(c[11],3,4),c[i],c[11,6],c[11,7]);
writeln(c[11,8],c[11,8],c[11,1],c[11,2],11,copy(c[11],3,4),
copy(c[11],1,6),copy(c[11],6,3),c[11,6],c[11,7]);
for i:=4 to 10 do writeln(c[i]);readln;
end.
← →
p_albert77@mail.ru (2002-10-27 01:56) [2]Спасибо! Еще будут предложения???
← →
p_albert77@mail.ru (2002-10-27 02:05) [3]Э-э да это не то (надуманно как-то и для лохов:)). Я вот читал ваши форумы offline (в архиве) и в общем-то нашел ссылку ( http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1012478822&n=3), кинулся в инет, а там сказали умерла ссылка :((( Шо делать-то?
← →
McSimm (2002-10-27 11:42) [4]Из этой ветки:
MBo © (31.01.02 16:58)
...
{$APPTYPE CONSOLE}
uses SysUtils;
var s:string;c:char;i:integer;
begin
s:="{$APPTYPE CONSOLE}%uses SysUtils;%var s:string;c:char;i:integer;%begin%s:=;%for i:=1 to length(s) do begin%c:=s[i];if c<>#37 then write(c) else writeln;%if
i=74 then writeln(#39+s+#39) end;%readln;%end.";
for i:=1 to length(s) do begin
c:=s[i];if c<>#37 then write(c) else writeln;
if i=74 then write(#39+s+#39) end;
readln;
end.
← →
blackweber (2002-10-27 12:48) [5]Да, этот метод Подгородецкий предложил - работает безупречно.
← →
KSergey (2002-10-27 13:32) [6]> p_albert77@mail.ru (27.10.02 02:05)
Не понятно что именно не устраивает? Что надуманно или для лохов? А не для лохов - это как? Ответы точно соответствуют вопросу "нужна программа, которая печатает саму себя. Это возможно?" Ответ - да, см. выше. (хотя вообще-то вопрос и не задан, если уж на то пошло: "программа печатает сама себя" Где же тут вопрос? Это утверждение какое-то. Что надо-то?)
← →
p_albert77@mail.ru (2002-10-28 11:14) [7]Спасибо всем за ответы! Не кажется ли кому-нить, что здесь пахнет рекурсией? Или можно так: обратиться к области памяти, где лежит сам исходник программы (ведь дело всегда происходит в памяти, верно?), и по байтам считать все на экран (больно сложно получится - как это проделать?)? Покажу эту ветку своему приятелю, и пусть он убедится сам во всем. А вообще-то у вас тут не так скучно, как на других сайтах по Дельфям(извините в сетке не часто бываю). Еще раз спасибо.
← →
Карелин Артем (2002-10-28 11:28) [8]На интерпретируемых языках (basic и т.п.) данная задача довольно проста. Но в случае Delphi это не пройдет.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c