• 締切済み

インデックスが配列の境界外です。というメッセージ

連立方程式を解くプログラムにおいて、連立方程式の解をテキストファイルに記録する作業を行うために以下のようにしました。 [連立方程式のPAD] Dim File As Integer File = FreeFile() FileOpen(File, "ABC.txt", OpenMode.Output) Dim i As Integer For i = 0 To N_i - 1 WriteLine(File, b_data(i)) Next i FileClose(File) End Sub すると、「インデックスが配列の境界外です」とエラーメッセージが出てしまいました。理由がまったく分かりません。 どなたかご回答よろしくお願いします。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

使っている変数の宣言も含めたコードを投稿しましょう dim w as double, w1(20) as double この宣言で wは倍精度型の単純変数 w1は倍精度型の配列変数です w(3) = 1.15 などといった使い方はできません また w1(-1) = 3.14 とか w1(21)= 0.25 なども宣言範囲を超えますので使用できません

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.2

>b_dataは最初にDim b_data As Doubleとしています。 Double 型の変数なのに、なぜ b_data(i) と配列のようにアクセスしているのでしょうか。 メッセージの意味は例えば配列が array(0), array(1), array(2) と三つしかないのに、 data(3) と境界を越えた場所を読みにいく状況です。

waku_az
質問者

お礼

説明不足でありました。まずテキストファイルの1行目に連立方程式の未知数の数、2行目に係数行列の要素を行と列の順番に記録し、3行目に解ベクトルの要素を書きました。そしてボタン1を押すと未知数の数が表示され、ボタン2を押すと入力した行列の要素番号の係数行列・定数項ベクトルが表示され、ボタン3を押すとABCというテキストファイルに方程式の解が出力されるのですが、ボタン2までは順調にできましたが、ボタン3でこのエラーが出てしまいます。 b_data(i) と配列のようにアクセスしている理由はこのように答えればいいのでしょうか。初心者なので間違っていればすみません。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>理由がまったく分かりません。 配列 b_data の要素が足りないことくらいしかわかりません。その定義はどうなっているのでしょうか。

waku_az
質問者

お礼

回答ありがとうございます b_dataは最初にDim b_data As Doubleとしています。 「インデックスが配列の境界外です」というのはどういうことなのでしょうか

関連するQ&A