プレイ日記
だにえる haru2016nen
エラー表に載ってない!?
11そうだね
プレイ済み
返信[1]
親投稿
Hanzo rzsense
直訳すると「19行目で未初期化の変数が使われた」となりますが・・・ ・・・あれ?このエラーってどういうときに出るんでしたっけ? OPTION STRICTを宣言しているのにVARで定義せずにいきなし変数を使ったり、DIMで定義していない配列変数を使ったりしたときは、Undefined variable(未定義変数)エラーになりますが・・・
2そうだね
プレイ済み
返信[2]
親投稿
自分は以前エラー番号53番とか出たような
1そうだね
プレイ済み
返信[3]
親投稿
hanzoさんの認識と同じです。 こんなエラーあったっけ・・。 言葉通りにかんがえるのであれば、その行で使っている変数に 何か代入して初期化しなさいって意味ですが・・。
2そうだね
プレイ済み
返信[4]
親投稿
つばさ☆ nsm2116
自分はDEFで関数を作ったときにRETURN忘れでこうなります。確か直訳のだと A= でもエラーになるはず。
3そうだね
プレイ済み
返信[5]
親投稿
だにえる haru2016nen
オプションは付けてないです
1そうだね
プレイ済み
返信[6]
親投稿
だにえる haru2016nen
グローバル変数を使う時は OUTを使わないといけないと思ってる。 違う? 恐らく2回目(以降)のループで エラーになってるようなのですが
1そうだね
プレイ済み
返信[7]
親投稿
つばさ☆ nsm2116
やっぱりそれか。OUTの時になるやつ。直し方分からんけどとりあえずsetのDEFの最後にRETURN SPってやってみて。直るかわからない。「レパロ!」
1そうだね
プレイ済み
返信[8]
親投稿
つばさ☆ nsm2116
てかOUTで出力する値がひとつならDEF (BT2,SP)にしたらいいと思う。関数の場合は必ずRETURN SPをしないと今と同じエラーがおきます。
1そうだね
プレイ済み
返信[9]
親投稿
確認できました DEFでRETURN漏れするとでますね。
4そうだね
プレイ済み
返信[10]
親投稿
意図的にRETURNを消してみた結果です。
1そうだね
プレイ済み
返信[11]
親投稿
PRG0側
1そうだね
プレイ済み
返信[12]
親投稿
だにえる haru2016nen
あらら、今度は一度もループせずに エラーになる
1そうだね
プレイ済み
返信[13]
親投稿
だにえる haru2016nen
おっと、19行目忘れてた。 ちゃんと動作しました!
1そうだね
プレイ済み
返信[14]
親投稿
だにえる haru2016nen
21行目でまた同じエラーが、、、
1そうだね
プレイ済み
返信[15]
親投稿
つばさ☆ nsm2116
それ数値返す意味ない。(と思う) X,Y,Z入力する。 SPOFS 0,X,Y,Z する終わり。 X,Y,Zの変化が一切ないので返す意味ないと思う。
0そうだね
プレイ済み
返信[16]
親投稿
だにえる haru2016nen
座標の変化は後で追加するつもりですー
1そうだね
プレイ済み
返信[17]
親投稿
つばさ☆ nsm2116
今はOUTはいらない。 変化して数値(もしくは文字列)を返したいならいる。 グローバル変数使うときにOUTじゃなくて数値(もしくは文字列)を複数返したい時に使う。1つだけ返すなら基本は関数 DEF内でローカル変数にしてない変数をDEF外で使うという手もあるな。
1そうだね
プレイ済み
返信[18]
親投稿
DEF命令の引き数と戻りに同じ変数名(仮引数名)を使えません。 呼び出し時には、同じ変数が使えます。
2そうだね
プレイ済み
返信[19]
親投稿
例 DEF FN X,Y OUT X1,Y1 X1=X*2 Y1=Y*2 END X=10:Y=5 FN X,Y OUT X,Y ? X,Y
2そうだね
プレイ済み
返信[20]
親投稿
他にもあるかもしれませんが、Uninitialized variable usedは、以下の場合に出ます。 1.A=のように右辺がない代入文 2.呼び出しで引き数を省略したとき、DEF内で省略した引き数を使った。  省略した引き数に代入するとTypemismatchになります。 3.呼び出し時に指定した戻りを、DEF内で値を設定し忘れた。 4.DEF命令(命令定義)で、引き数と戻りに同じ名前を使った。
2そうだね
プレイ済み
返信[21]
親投稿
だにえる haru2016nen
代入しておかないと エラーになるんですねー。 わざわざこんなことする必要が、、、
1そうだね
プレイ済み
返信[22]
親投稿
おちゃめ ochame_nako
プチコン3号では引数(およびOUT以降の戻り値)に使われている変数はわざと型が曖昧な状態(代入によって型が確定)にしてあるとのことです。 使いにくい部分もあるかもしれませんが、これによって引数には数値でも文字列でも受け付ける自作関数を作ることが可能なのですごく便利です。 これは具体的に言えば、GPUTCHRにおいてGPUTCHR X,Y,文字コードの数値でもGPUTCHR X,Y,文字列でもOKみたいな感じの自作関数を作れるということです。 数値と文字列だけではなく1つの関数で整数型と実数型を使い分けることも可能です。
2そうだね
プレイ済み