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

題通りなんですが このようなエラーメッセージがでるときは、なにが間違っているのでしょうか?
当方恥ずかしながらN88互換BASIC for Windows95を使っています
よろしくお願いします

A 回答 (6件)

そもそも、配列とか添え字というのは理解されているのでしょうか?



そのエラーは、文字通り、配列として定義されていない範囲の添え字を使おうとしたときに出ます。

つまり、

Dim Members(100) as String

としておきながら、Members(101)=1 + 2

等としようとした場合などです。

間違いやすいのは、配列の定義が0から始まる場合です。

つまり、10個の配列を定義しようとした場合、
Goukei(9)とするとGoukei(0)~Goukei(9)までの10個を使えるようになりますが、ここで10番目として、うっかりGoukei(10)としてしまうことがよくありますが、そういったミスはないでしょうか。
    • good
    • 1
この回答へのお礼

ありがとうございました
ご指摘どおり 人の作ったプログラムをあれこれいじっているため、根本的なことがわかっていないです
本来なら、本などを読んで勉強してからが 正しいのでしょうが。
少々時間がなく、このような力技を使っているしだいです
もう少しプログラムをにらんで見たいと思います
もしよろしければ基本的なことを記述したURLを教えていただけないでしょうか?

お礼日時:2003/04/27 00:01

なんか混乱を招くだけかもしれませんが・・・



たとえば実行環境が16bitだと通常は1変数は64kBまでしか作れません。
配列変数もそうです。
そういった巨大配列変数(・・・ってもう巨大って時代じゃないか・・・)を作成したときもこのエラーメッセージが出力されていたと思います。
    • good
    • 0

#1です。

N88互換BASIC for Windows95という開発環境をよく知らないのですが、windows対応の環境なら、最低限、トレースとかスナップショットとかブレークポイントというのがあると思います。そこらをヘルプで調べてみて下さい。
わからないときは、
1.配列を使っているところの直前にprint文を挿入して結果を画面に表示させる
2.配列を使っている箇所の先頭に'をつけてコメントアウトして実行する。エラーがなくなったら、コメントアウトした部分にエラーがある
などの方法でチェックします。

あと、ソースのチェックをするときは画面ではなく、紙に印刷してみる方がいいです。
    • good
    • 0

#3です。



>見た感じそのようなミスはしていないと思います
どういう風に見たんでしょうか?
エラーの位置はわかっているのでしょうか?
わかっているなら、その位置の直前で添字の値をPRINT文などで
出力して確認みてください。

この回答への補足

すみません 見栄をはりました
やはりよくわかりません
PRINT文で添え字の値を出力するというのは 具体的にはどのようにしたらいいのでしょうか?
すみません初心者でして

補足日時:2003/04/27 00:49
    • good
    • 0

配列変数の添字が範囲を超えています。


添字は、0~宣言した最大値 の範囲でなければいけません。
N88互換BASIC では配列変数の宣言をしなくても配列が使えたように
記憶しています。ただ、その場合は最大値は10だったと思います。
http://www.orange.ne.jp/~kibita/n88/chap4.html

確認してみてください。

参考URL:http://www.orange.ne.jp/~kibita/n88/chap4.html
    • good
    • 0
この回答へのお礼

ありがとうございます
しかし見た感じそのようなミスはしていないと思います
なぜでしょうか?うーん

お礼日時:2003/04/27 00:18

その配列をコントロールが通るたびに配列の添字の値を見るためPRINT文を仮にいれて表示して、中身を調べればよいのでは。

0かUBOUNDを越えているか、中身が数値でないか、マイナスかなどでしょう。小数値はエラーにならなかったように思います。
    • good
    • 0

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