流れ図(フローチャート)を描く 山中和義 2008/01/09 16:18:14 (修正1回) └つづき 山中和義 2008/01/09 16:20:23 (修正1回) └流れ図でアルゴリズムを検証する。2008.1.1... 山中和義 2008/01/10 12:53:57 (修正4回) ├つづき 山中和義 2008/01/10 12:55:58 (修正4回) ├つづき2 山中和義 2008/01/10 13:01:14 (修正4回) ├つづき3 山中和義 2008/01/11 21:06:32 (修正2回)
Re: 流れ図でアルゴリズムを検証する。2008.1.1... |
返事を書く ノートメニュー |
山中和義 <drdlxujciw> 2008/01/11 21:06:32 ** この記事は2回修正されてます | |
つづき3
SUB CodeJump(d) !飛び先を生成する PRINT "GOTO"; SELECT CASE d !方向に応じて CASE 0 !右 PRINT 100*(x+1)+y CASE 1 !上 PRINT 100*x+(y+1) CASE 2 !左 PRINT 100*(x-1)+y CASE 3 !下 PRINT 100*x+(y-1) CASE ELSE END SELECT END SUB SUB CodeParm(t$,flg) !引数を生成する ※t$=p1,p2,…,pn,形式 LET i=1 LET p=POS(t$,",") DO WHILE p>0 AND t$<>"," IF flg>0 THEN PRINT "LET ";trim$(t$(1:p-1));"=PARM";STR$(i) !引数から ELSE PRINT "LET PARM";STR$(i);"=";trim$(t$(1:p-1)) !引数へ END IF LET t$=t$(p+1:LEN(t$)) !eat it LET i=i+1 !次へ LET p=POS(t$,",") LOOP END SUB SUB CodeComment(c$) !注釈を生成する IF c$<>"" THEN PRINT " !"; PRINT c$ END SUB !-------------------- ここまでがサブルーチン LET h=7 !行数 LET w=5 !列数 LET s=MAX((w+1)*2,(h+1)*1.5) SET WINDOW 0,s,0,s !表示領域 ※正方形 DRAW grid(2,1.5) !1パス目(流れ図の描画、飛び先の行番号の定義) RESTORE 10 FOR x=1 TO w !格子を走査する FOR y=h TO 1 STEP -1 CALL ReadData(n,d1$,d2$,s$,c$) !流れ図記号を得る DRAW FChart2(n,d1$,d2$,s$,c$) WITH SHIFT(x*2,y*1.5) !流れ図を描く SELECT CASE n !コード生成に備えて位置を記録する CASE 1 !端子 IF POS(s$,"開始")>0 THEN ELSEIF POS(s$,"終了")>0 THEN ELSEIF POS(s$,"戻る")>0 THEN ELSE !関数、手続きなら LET NAM$(x+w*y)=fnc$(s$) !名称 END IF CASE 2!結合子 IF d1$<>"" THEN LET JMP(VAL(s$))=100*x+y !入口なら CASE 6,16 !繰り返しの開始 LET d2=VAL(d2$) !ループ番号 IF s$<>"" THEN !前判定なら LET LBL(d2)=100*x+y ELSE IF LBL(d2)>0 THEN !後判定が確定なら ELSE LET LBL(d2)=-(100*x+y) !後判定か無条件か END IF END IF CASE 7,17 !繰り返しの終了 LET d2=VAL(d2$) !ループ番号 IF LBL(d2)>0 THEN !前判定が確定なら ELSE IF s$<>"" THEN LET LBL(d2)=100*x+y !後判定なら !無条件は負! END IF CASE ELSE END SELECT NEXT y NEXT x !2パス目(コード生成) RESTORE 10 FOR x=1 TO w !格子を走査する FOR y=h TO 1 STEP -1 CALL ReadData(n,d1$,d2$,s$,c$) IF n>0 THEN CALL CodeGen(n,d1$,d2$,s$,c$) !コードを生成する NEXT y NEXT x |
└つづき4 山中和義 2008/01/13 20:10:24 (修正1回) └サンプル(右から左へ受け流す〜♪) 山中和義 2008/01/13 20:18:23 (修正1回) └高校数学「数値計算とコンピュータ」 山中和義 2008/01/22 20:37:31 (修正1回)