投稿者:GAI
投稿日:2015年 3月 1日(日)04時27分52秒
|
|
|
%BEGIN
!THIS IS A SELF-REPRODUCING PROGRAM
%ROUTINESPEC R
R
PRINT SYMBOL(39)
R
PRINT SYMBOL(39)
NEWLINE
%CAPTION %END~
%CAPTION %ENDOFPROGRAM~
%ROUTINE R
%PRINTTEXT '
%BEGIN
!THIS IS A SELF-REPRODUCING PROGRAM
%ROUTINESPEC R
R
PRINT SYMBOL(39)
R
PRINT SYMBOL(39)
NEWLINE
%CAPTION %END~
%CAPTION %ENDOFPROGRAM~
%ROUTINE R
%PRINTTEXT '
%END
%ENDOFPROGRAM
または
char x[] = "main() { int j; putchar(99); putchar(104); \
putchar(97);putchar(114); putchar(32);putchar(120); putchar(91); \
putchar(93);putchar(61); putchar(34); for(j=0; j<strlen(x); \
++j)putchar(x[j]);putchar(34); putchar(59); putchar(10); for(j=0; \
j<strlen(x); ++j) putchar(x[j]);putchar(10); }"; main () {int j;
putchar (99); putchar (104); putchar (97); putchar (114);
putchar (32); putchar (120); putchar (91); putchar (93);
putchar (61); putchar (34);
for (j = 0; j < strlen (x); ++j) putchar (x[j]); putchar (34);
putchar (59); putchar (10);
for (j = 0; j < strlen (x); ++j) putchar (x[j]); putchar (10);}
|
|
|
投稿者:SECOND
投稿日:2015年 3月 3日(火)14時26分5秒
|
|
|
> No.3597[元記事へ]
GAIさんへのお返事です。
!-------------------------------
! x$= "【 ~
! 】"
!【 print "x$=";x$
! print x$ 】 の様な、構造であるが、
! BASIC は、改行が自由でないので、
!-------------------------------
LET x$="PRINT ""LET x$=""; CHR$(34);x$;CHR$(34); CHR$(13);CHR$(10); x$"
PRINT "LET x$="; CHR$(34);x$;CHR$(34); CHR$(13);CHR$(10); x$
! ↑実行結果の↓プリント表示
!LET x$="PRINT "LET x$="; CHR$(34);x$;CHR$(34); CHR$(13);CHR$(10); x$"
!PRINT "LET x$="; CHR$(34);x$;CHR$(34); CHR$(13);CHR$(10); x$
!---------------------------------------------------------------------
!上は、「""」が →「"」になって、うまくいかないので、PRINT 文から 全ての「"」を無くす。
! "LET x$=" → CHR$(76);CHR$(69);CHR$(84);CHR$(32);CHR$(120);CHR$(36);CHR$(61)
!---------------------------------------------------------------------
! これで一致、しかし見ずらい・・
LET x$="PRINT CHR$(76);CHR$(69);CHR$(84);CHR$(32);CHR$(120);CHR$(36);CHR$(61); CHR$(34);x$;CHR$(34); CHR$(13);CHR$(10); x$"
PRINT CHR$(76);CHR$(69);CHR$(84);CHR$(32);CHR$(120);CHR$(36);CHR$(61); CHR$(34);x$;CHR$(34); CHR$(13);CHR$(10); x$
! ↑実行結果の↓プリント表示
!LET x$="PRINT CHR$(76);CHR$(69);CHR$(84);CHR$(32);CHR$(120);CHR$(36);CHR$(61); CHR$(34);x$;CHR$(34); CHR$(13);CHR$(10); x$"
!PRINT CHR$(76);CHR$(69);CHR$(84);CHR$(32);CHR$(120);CHR$(36);CHR$(61); CHR$(34);x$;CHR$(34); CHR$(13);CHR$(10); x$
END
|
|
|
投稿者:山中和義
投稿日:2015年 3月 4日(水)10時21分34秒
|
|
|
> No.3601[元記事へ]
SECONDさんへのお返事です。
SECONDさんに習って、
10 LET X$="20 PRINT CHR$(49);CHR$(48);CHR$(32); CHR$(76);CHR$(69);CHR$(84);CHR$(32); CHR$(88);CHR$(36);CHR$(61); CHR$(34);X$;CHR$(34); CHR$(13);CHR$(10); X$; CHR$(13);CHR$(10); CHR$(51);CHR$(48);CHR$(32); CHR$(69);CHR$(78);CHR$(68)"
20 PRINT CHR$(49);CHR$(48);CHR$(32); CHR$(76);CHR$(69);CHR$(84);CHR$(32); CHR$(88);CHR$(36);CHR$(61); CHR$(34);X$;CHR$(34); CHR$(13);CHR$(10); X$; CHR$(13);CHR$(10); CHR$(51);CHR$(48);CHR$(32); CHR$(69);CHR$(78);CHR$(68)
30 END
文字出力(CHR$関数)を、引用符と制御コード(CR,LF)に限定すると、
10 LET X$="20 PRINT X$(109:999); CHR$(34);X$;CHR$(34);CHR$(13);CHR$(10); X$(1:102);CHR$(13);CHR$(10); X$(103:108)30 END10 LET X$="
20 PRINT X$(109:999); CHR$(34);X$;CHR$(34);CHR$(13);CHR$(10); X$(1:102);CHR$(13);CHR$(10); X$(103:108)
30 END
10 DATA "30 PRINT X$(150:999); CHR$(34);X$;CHR$(34);CHR$(13);CHR$(10); X$(140:149);CHR$(13);CHR$(10); X$(1:133);CHR$(13);CHR$(10); X$(134:139)40 END20 READ X$10 DATA "
20 READ X$
30 PRINT X$(150:999); CHR$(34);X$;CHR$(34);CHR$(13);CHR$(10); X$(140:149);CHR$(13);CHR$(10); X$(1:133);CHR$(13);CHR$(10); X$(134:139)
40 END
マルチステートメント、END文なし なら、簡潔になりますね。
|
|
|
戻る