投稿
2015.04.07 Blogger《高機能電卓の話題》で、円周率を計算するの話題で、プチコン用に書き直したソースを実行してもSubscript out of rangeを頻発。 【ソース】 INPUT "BASE=";K       // 変数あたりの桁数 B=POW(10,K) E=FLOOR(K/LOG(2,10))   // 省略する計算項数 F=FLOOR(A/LOG(2,10))+1  // 計算項数 H=FLOOR(A/K)+1        // 結果格納配列数 L=((F-1)/E)+1-H     // 実際のループとの誤差 DIM Z[F+L],A0[H]     // 配列確保 CLS FOR I=1 TO F  Z[I]=FLOOR(B/5) NEXT (以下続く)
2そうだね
プレイ済み
返信[1]
親投稿
N=F C=0 FOR I=1 TO H  // 外側ループは結果の格納配列数でよい  LOCATE 1,1:PRINT N  T=0  FOR J=N-1 TO 1 STEP -1   D=2*J-1   W=T*J+Z[J]*B   T=FLOOR(W/D)   Z[J]=W-T*D  NEXT  W=FLOOR(T/B)  A0[I]=C+W  C=T-W*B
0そうだね
プレイ済み
返信[2]
親投稿
N=N-E NEXT PRINT "PI=";      // 計算結果表示 FOR I=1 TO H  PRINT A0[I]; NEXT PRINT "END"
0そうだね
プレイ済み
返信[3]
親投稿
エラー発生箇所。 A0[I]=C+W  
0そうだね
プレイ済み
返信[4]
親投稿
 作成者は私でなく、ブログ主です。
0そうだね
プレイ済み
返信[5]
親投稿
パッと見た感じ DIM A0[H] の宣言で使える範囲は A0[0]~A0[H-1] FOR I=1 TO H の中でA0[H] を参考にしているようにみえます。 配列の上限を確認して1つ多く確保するなりすれば良いと思います。
1そうだね
プレイ済み
返信[6]
親投稿
ありがとうございます。(´∀`)」 さっそく試してみます。
0そうだね
プレイ済み