- ベストアンサー
かなり昔の N-88-basic 6.0 なのですが…
誘電体の比誘電率をN-88-basic 6.0を使って測定しているのですが、エラーがでて測定が中止されてしまいます。プログラムは30℃から160℃まで温度を順に上げて測定するものです。 エラー内容は Temperature Over Overflow in 3700 OK と出ます。温度は常温のままなのに測定を開始すると出てしまいます。私自身プログラムに無頓着なため勉強中ですが中々解決できません。完全回答でなくヒント程度でも良いのでよろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
測定装置も昔のままですか? ソフトが古いからといって、故障するはずもありませんので、原因はハードウェアの設定にあると思います。 interfaceがRS232Cなら、伝送速度の設定をN-88-basicの"OPEN"記述と同じに設定してありますか? N-88-basicとの相性を考えて、装置の設定等を見直すことも大切です。 基本的には、N-88-basic側が前提とする環境設定を、プログラムの説明書に従って見直すことです。
その他の回答 (4)
- big_egg
- ベストアンサー率44% (736/1648)
当方も5~6年程前、N88-BASIC(86)、Quick BASICで土木系プログラムを自作していました。 >Overflow in 3700 は、#4の方が書いているように、変数に代入された数値が型の範囲を超えた場合のエラーだったと記憶しています。 エラーは3700行目で起きているので、その一つ前にSTOP文を入れてプログラムを一時停止、その後、PRINT 変数名 リターンで変数の数値を表示させて見て下さい。 例: 3700 A=B*C でエラー表示されるとして、 3695 STOP を追加、RUNでプログラムを実行、3695行でストップするので、 PRINT B,C リターン で変数 B,Cを表示 この場合B*CがAの型を超えていれば 1.Aの型を変更 2.B,Cが規定の想定範囲を超えている場合は、B,Cの変数を追って見ることも必要 3.B,Cに0.01等の定数を掛けて一時的にオーバーフローを回避してみる(結果表示等で再度100を掛けて補正が必要) など手を考えられます。 まずは変数の数値を表示して原因を確認してみましょう。 一度やってみて下さい。
- xcrOSgS2wY
- ベストアンサー率50% (1006/1985)
懐かしいですね。 Overflowですと(1)演算結果を変数に格納する際、変数の型が許す値の範囲を超えた、(2)演算結果の型が固定されている演算において、型が許す値の範囲を演算結果が超えた、のいずれかが発生しています。 ちなみに、添え字の範囲の逸脱であればSubscript out of rangeエラーとなるはずです。
- heyboy
- ベストアンサー率21% (1852/8730)
なんとも言えませんが >Temperature Over 直訳すると温度が越えている つまりは高温だと言う事ですが これはプログラム側の プリント文によるメッセージ ではないかと思うのですが、、。 >Overflow in 3700 これは3700行で 何らかの関数値が 値を超えた意味です。 色々なケースがあるのですが 例えば ・DIM A(7)を指定して あってA(8)以上を指定した場合 ・関数に入れる数値が以上に高い 他にもFOR~NEXT文で カウントさせる数値を 直接扱うと出る可能性があります。 10年近く言語から離れているので 正確な答えは出せないかもしれませんが その問題な3700行あたりを 補足で出してみた方が いいかもしれません。
- 555imp
- ベストアンサー率38% (33/85)
リストの3700行の変数が想定されるものより大きい数値が入っている.たぶん160℃以上の数値.ソースがないので何とも言えませんが. 初期設定がおかしいのかな? でも今までちゃんと動いていたとしたら・・・ 3700行の変数をさかのぼっていって下さい.