C言語をBasic言語へできますか?

 投稿者: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);}
 

Re: C言語をBasic言語へできますか?

 投稿者: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
 

Re: C言語をBasic言語へできますか?

 投稿者:山中和義  投稿日: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文なし なら、簡潔になりますね。

 

戻る