DIM A(12),C(12),D(12),B$(12) LET B$(1) = " DO : " LET B$(2) = "#DO : " LET B$(3) = " RE : " LET B$(4) = "#RE : " LET B$(5) = " MI : " LET B$(6) = " FA : " LET B$(7) = "#FA : " LET B$(8) = " SO : " LET B$(9) = "#SO : " LET B$(10) = " LA : " LET B$(11) = "#LA : " LET B$(12) = " SI : " FOR i=0 TO 11 FOR j=0 TO 11 LET A(i+1) = (3/2)^i * (1/2)^j IF A(i+1) >= 1 AND A(i+1) =< 2 THEN GOTO 10 NEXT j 10 NEXT i CALL sort(A,12) PRINT PRINT "DO SO RE LA MI SI #FA #DO #SO #RE #LA FA DO" PRINT PRINT "ピタゴラス音律(上昇)" FOR i=1 TO 12 PRINT B$(i);A(i) NEXT i PRINT " DO : 2.02728653" PRINT PRINT "DO SO RE LA MI SI #FA #DO #SO #RE #LA FA DO" PRINT PRINT "ピタゴラス音律(下降)" FOR i=0 TO 11 FOR j=0 TO 11 LET C(i+1) = (2/3)^i * 2^j IF C(i+1) >= 1 AND C(i+1) =< 2 THEN GOTO 20 NEXT j 20 NEXT i CALL sort(C,12) FOR i=1 TO 12 PRINT B$(i);C(i) NEXT i PRINT " DO : "; PRINT (2/3)^12 * 2^8 PRINT PRINT "#FA #DO #SO #RE #LA FA DO SO RE LA MI SI #FA" PRINT PRINT "ピタゴラス音律(混合)" FOR i=-5 TO 6 FOR j=-5 TO 6 LET D(i+6) = (3/2)^i * (1/2)^j IF D(i+6) >= 1 AND D(i+6) < 2 THEN GOTO 30 NEXT j 30 NEXT i CALL sort(D,12) FOR i=1 TO 12 PRINT B$(i);D(i) NEXT i PRINT B$(1);" 2" PRINT PRINT " 純正調 平均律" PRINT B$(1);" 1 ";2^(0/12) PRINT B$(2);" ";2^(1/12) PRINT B$(3);" 1.125 ";2^(2/12) PRINT B$(4);" ";2^(3/12) PRINT B$(5);" 1.25 ";2^(4/12) PRINT B$(6);" 1.3333333 ";2^(5/12) PRINT B$(7);" ";2^(6/12) PRINT B$(8);" 1.5 ";2^(7/12) PRINT B$(9);" ";2^(8/12) PRINT B$(10);" 1.6666666 ";2^(9/12) PRINT B$(11);" ";2^(10/12) PRINT B$(12);" 1.875 ";2^(11/12) PRINT B$(1);" 2 ";2^(12/12) END EXTERNAL SUB sort(a(),m) FOR i=1 TO m-1 FOR j=i+1 TO m IF a(i)>a(j) THEN LET t=a(j) LET a(j)=a(i) LET a(i)=t END IF NEXT j NEXT i END SUB