PRINT PRINT "2重音の波形( 長調編 ):" PRINT "do re mi fa so ra si doo" PRINT INPUT PROMPT "第1の音? ( do, re, mi, ・・・ ) ":AA$ INPUT PROMPT "第2の音? ( do, re, mi, ・・・ ) ":BB$ PRINT IF AA$="do" THEN LET a=24 IF AA$="re" THEN LET a=27 IF AA$="mi" THEN LET a=30 IF AA$="fa" THEN LET a=32 IF AA$="so" THEN LET a=36 IF AA$="ra" THEN LET a=40 IF AA$="si" THEN LET a=45 IF AA$="doo" THEN LET a=48 IF BB$="do" THEN LET b=24 IF BB$="re" THEN LET b=27 IF BB$="mi" THEN LET b=30 IF BB$="fa" THEN LET b=32 IF BB$="so" THEN LET b=36 IF BB$="ra" THEN LET b=40 IF BB$="si" THEN LET b=45 IF BB$="doo" THEN LET b=48 SET WINDOW -2,2,-2,2 FOR y=-2 TO 2 STEP 0.0001 PLOT LINES: y,SIN(a*y)/4; PLOT LINES NEXT y SET LINE COLOR 0 FOR yy=-2 TO 2 STEP 0.0001 PLOT LINES: yy,SIN(a*yy)/4; PLOT LINES NEXT yy SET LINE COLOR 2 FOR z=-2 TO 2 STEP 0.0001 PLOT LINES: z,SIN(b*z)/4; PLOT LINES NEXT z SET LINE COLOR 0 FOR zz=-2 TO 2 STEP 0.0001 PLOT LINES: zz,SIN(b*zz)/4; PLOT LINES NEXT zz SET LINE COLOR 4 FOR x=-2 TO 2 STEP 0.0001 PLOT LINES: x,SIN(a*x)/4+SIN(b*x)/4; PLOT LINES NEXT x PRINT "do re mi fa so ra si doo" PRINT "24 27 30 32 36 40 45 48" PRINT LET c=GCD(a,b) PRINT "2つの音の振動数の比は ";a/c;":";b/c;" です。" PRINT END EXTERNAL FUNCTION GCD(s,t) ! 最大公約数を求める関数 DO LET m=MOD(s,t) IF m=0 THEN EXIT DO LET s=t LET t=m LOOP LET gcd=t END FUNCTION