第3問(選択問題)(配点 35)
1.問題の進行通りに三角形の個数を求めて表示するプログラム
  ダウンロード →
prog1.bas
100 '
110 ' 準備
120 '
130    TYOTENSU=8
140    HENSOSU=0
150    KOTAE=0
160    DIM HEN$(TYOTENSU,TYOTENSU), SENBUN$(TYOTENSU^2)
170    DIM SITEN(TYOTENSU^2), SYUTEN(TYOTENSU^2)
180 '
190 '
200 ' 表2を読み込む → 頂点の情報を用意する
210 '
220    RESTORE *HYO2
230    FOR I=1 TO 8
240      FOR J=1 TO 8
250        READ HEN$(I,J)
260      NEXT
270    NEXT
280 '
290    *HYO2
300 '
310 '    終点 j → 1   2   3   4   5   6   7   8
320 '
330         DATA   - , A , B , - , A , - , A , B    ' 1  ↓ 始点 i
340         DATA   - , - , - , C , A , - , A , C    ' 2
350         DATA   - , - , - , E , - , E , E , B    ' 3
360         DATA   - , - , - , - , - , E , E , C    ' 4
370         DATA   - , - , - , - , - , D , A , D    ' 5
380         DATA   - , - , - , - , - , - , E , D    ' 6
390         DATA   - , - , - , - , - , - , - , F    ' 7
400         DATA   - , - , - , - , - , - , - , -    ' 8
410 '
420 '
430 ' 表2から表1を作成する → 辺の表を作る
440 '
450    FOR I=1 TO TYOTENSU-1
460      FOR J=I+1 TO TYOTENSU
470        IF HEN$(I,J)<>"-" THEN
480          HENSOSU=HENSOSU+1
490          SITEN(HENSOSU)=I
500          SYUTEN(HENSOSU)=J
510          SENBUN$(HENSOSU)=HEN$(I,J)
520        END IF
530      NEXT
540    NEXT
550 '
560 '
570 ' 三角形を数える
580 '
590    FOR X=1 TO HENSOSU-2
600      Y=X+1
610      WHILE SITEN(X)=SITEN(Y)
620        IF SENBUN$(X)<>SENBUN$(Y) AND HEN$(SYUTEN(X),SYUTEN(Y))<>"-" THEN
630          KOTAE=KOTAE+1
640        END IF
650        Y=Y+1
660      WEND
670    NEXT
680    PRINT " 三角形の個数は ";KOTAE;" 個である"
690 '
700 '
710    END
720 '