Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.14;
Скачать: CL | DM;

Вниз

программа печатает сама себя???   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
3-45706
_ALEX70_
2002-10-23 15:01
2002.11.14
Запрос в хронимой процедуре


14-46075
VictorT
2002-10-24 21:14
2002.11.14
Про


1-45990
Dedok
2002-11-04 18:36
2002.11.14
вопросик по компиляции


4-46191
nefelim
2002-10-03 21:17
2002.11.14
Как можно узнать оригинальный путь файла в Recycle Bin?


14-46120
^Sanya
2002-10-27 00:03
2002.11.14
Существует ли обратная совместимость Delphi7->Delphi6 ?