PRINT PRINT "2重音の波形( 短調編 ):" PRINT "ra si do re mi fa so raa" PRINT INPUT PROMPT "第1の音? ( ra, si, do, ・・・ ) ":AA$ INPUT PROMPT "第2の音? ( ra, si, do, ・・・ ) ":BB$ PRINT IF AA$="ra" THEN LET a=40 IF AA$="si" THEN LET a=45 IF AA$="do" THEN LET a=48 IF AA$="re" THEN LET a=53.333 IF AA$="mi" THEN LET a=60 IF AA$="fa" THEN LET a=64 IF AA$="so" THEN LET a=72 IF AA$="raa" THEN LET a=80 IF BB$="ra" THEN LET b=40 IF BB$="si" THEN LET b=45 IF BB$="do" THEN LET b=48 IF BB$="re" THEN LET b=53.333 IF BB$="mi" THEN LET b=60 IF BB$="fa" THEN LET b=64 IF BB$="so" THEN LET b=72 IF BB$="raa" THEN LET b=80 SET WINDOW -1,1,-1,1 FOR y=-1 TO 1 STEP 0.0001 PLOT LINES: y,SIN(a*y)/4; PLOT LINES NEXT y SET LINE COLOR 0 FOR yy=-1 TO 1 STEP 0.0001 PLOT LINES: yy,SIN(a*yy)/4; PLOT LINES NEXT yy SET LINE COLOR 2 FOR z=-1 TO 1 STEP 0.0001 PLOT LINES: z,SIN(b*z)/4; PLOT LINES NEXT z SET LINE COLOR 0 FOR zz=-1 TO 1 STEP 0.0001 PLOT LINES: zz,SIN(b*zz)/4; PLOT LINES NEXT zz SET LINE COLOR 4 FOR x=-1 TO 1 STEP 0.0001 PLOT LINES: x,SIN(a*x)/4+SIN(b*x)/4; PLOT LINES NEXT x PRINT "ra si do  re  mi fa so raa" PRINT "40 45 48 53.333 60 64 72 80" PRINT IF a=53.333 OR b=53.333 THEN GOTO 10 LET c=GCD(a,b) PRINT "2つの音の振動数の比は ";a/c;":";b/c;" です。" 10 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