【質問箱 No.37 回答】 ⇒⇒⇒⇒ 質問箱 No.37 (96年10月号)の趣旨 質問者:入川 精二 カレンダーを作りたい 回答者:藤原 良允 <プログラム> /* 曜NUMプログラム・・・上書き問い合わせあり */       V1="日";V2="月";V3="火";V4="水";V5="木";V6="金";V7="土";CAL;HOME; $スタート: ACCEPT "縦方向(R)、横方向(C) ? [RETURN]のみは 縦方向 です",V11; IF V11="R" THEN GOTO タテテ1; IFV11="" THEN GOTO タテ1; IF V11="C" THEN GOTO ヨコ1 ELSE GOTO スタート; $タテ1: ACCEPT "列番号は ?",V12; ACCEPT "何行目から書き込みますか ?",V13; LET X12=VAL(V12);LET X13=VAL(V13);GOTO 曜; $ヨコ1: ACCEPT "行番号は ?",V13; ACCEPT "何列目から書き込みますか ?",V12; LET X12=VAL(V12);LET X13=VAL(V13);GOTO 曜; $曜: ACCEPT "上書きしてもよいですかY/N?[RETURN]のみはYです ?",V15; ACCEPT "スタートの曜日は ?(日=1,月=2,火=3,水=4,木=5,金=6,土=7)",V14; IF V14="" THEN GOTO 曜;IF VAL(V14)<1 OR >7 THEN GOTO 曜; LET X14=VAL(V14);IF V11="R" THEN GOTO タテ2;IFV11="C" THEN GOTO ヨコ2; $タテ2: IF V15="" OR "Y" THEN GOTO 上書1; FOR X30=X13 TO T; LET V21=[X30,X12];IF V21<>"" THEN GOTO 次2 ELSE GOTO 次1; $次1: LET [X30,X12]=V%X14;LET X14=X14+1;IF X14=8 THEN LET X14=1; $次2: NEXT;GOTO 終; $上書1: FOR X30=X13 TO T; LET V22=[T+1,X12]; LET V12=[X30,X12];IF V21=V22 THEN GOTO ツギ2 ELSE GOTO ツギ1; $ツギ1: LET 〔X30,X12]=V%X14;LET X14=X14+1;IF X14=8 THEN LET X14=1; $ツギ2: NEXT;GOTO 終; $ヨコ2: IF V15="" OR "Y" THEN GOTO 上書2; FOR X30=X12 TO C; LET V21=[X13,X30;IF V21<>"" THEN GOTO 次4 ELSE GOTO 次3; $次3: LET [X13,X30]=V%X14;LETX14=X14+1;IF X14=8 THEN LET X14=1; $次4: NEXT;GOTO終; $上書2: FOR X30=X12 TO C; LETV22=[X13,C]; LETV21=[X13,X30];IF V21=V22 THEN GOTO ツギ4 ELSE GOTO ツギ3; $ツギ3: LET [X13,X30]=V%14;LET X14=X14+1;IF X14=8 THEN LET X14=1; $ツギ4: NEXT; $終: STOP;