OPTION ARITHMETIC DECIMAL_HIGH FOR i=1 TO 101 STEP 10 LET n=10^i PRINT "正 10^"; PRINT USING "###":i; PRINT " 角形の面積 : "; PRINT n*sine(PI/n)*cose(PI/n) !外接円の半径が1の正n角形の面積 NEXT i END ! 1000桁モードで利用する正弦,余弦,正接関数 ( たろさ氏より http://6317.teacup.com/basic/bbs/4197 ) EXTERNAL FUNCTION sine(x) DECLARE EXTERNAL FUNCTION cose OPTION ARITHMETIC DECIMAL_HIGH IF x<0 THEN LET sine=-sine(-x) ELSEIF x>2*PI THEN LET sine=sine(MOD(x,2*PI)) ELSEIF x>PI THEN LET sine=-sine(x-PI) ELSEIF x>PI/2 THEN LET sine=sine(PI-x) ELSEIF x>PI/4 THEN LET sine=cose(PI/2-x) ELSE ! マクローリン級数による近似 LET y=x LET n=0 LET t=y DO LET y0=y LET n=n+1 LET t=-t*x^2/((2*n)*(2*n+1)) LET y=y+t LOOP UNTIL y0=y LET sine=y END IF END FUNCTION ! EXTERNAL FUNCTION cose(x) DECLARE EXTERNAL FUNCTION sine OPTION ARITHMETIC DECIMAL_HIGH IF x<0 THEN LET cose=cose(-x) ELSEIF x>2*PI THEN LET cose=cose(MOD(x,2*PI)) ELSEIF x>PI THEN LET cose=-cose(x-PI) ELSEIF x>PI/2 THEN LET cose=-cose(PI-x) ELSEIF x>PI/4 THEN LET cose=sine(PI/2-x) ELSE ! マクローリン級数による近似 LET y=1 LET n=0 LET t=y DO LET y0=y LET n=n+1 LET t=-t*x^2/((2*n-1)*(2*n)) LET y=y+t LOOP UNTIL y0=y LET cose=y END IF END FUNCTION ! EXTERNAL FUNCTION tane(x) DECLARE EXTERNAL FUNCTION sine,cose OPTION ARITHMETIC DECIMAL_HIGH LET tane=sine(x)/cose(x) END FUNCTION