dポイントプレゼントキャンペーン実施中!

連立方程式を解くプログラムにおいて、連立方程式の解をテキストファイルに記録する作業を行うために以下のようにしました。

[連立方程式の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

すると、「インデックスが配列の境界外です」とエラーメッセージが出てしまいました。理由がまったく分かりません。

どなたかご回答よろしくお願いします。

A 回答 (3件)

使っている変数の宣言も含めたコードを投稿しましょう



dim w as double, w1(20) as double
この宣言で wは倍精度型の単純変数 w1は倍精度型の配列変数です
w(3) = 1.15
などといった使い方はできません
また w1(-1) = 3.14 とか w1(21)= 0.25 なども宣言範囲を超えますので使用できません
    • good
    • 0

>b_dataは最初にDim b_data As Doubleとしています。



Double 型の変数なのに、なぜ b_data(i) と配列のようにアクセスしているのでしょうか。

メッセージの意味は例えば配列が array(0), array(1), array(2) と三つしかないのに、
data(3) と境界を越えた場所を読みにいく状況です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/01/09 23:50

>理由がまったく分かりません。



配列 b_data の要素が足りないことくらいしかわかりません。その定義はどうなっているのでしょうか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/01/09 22:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!