トピック
HIBIKI 130216

これを実行すると、最終行に示してあるようなエラーが出てしまうのですが、どうすれば良いでしょうか?

0そうだね
プレイ済み
返信[1]
親投稿
MIKI ifconfig
swip 内で d に値を設定してないからでは? (xx==xの時) https://miiverse.nintendo.net/replies/AYMHAAACAAADVHkkA8LUyg コータ(おっさん) 2015/10/26 23:46 DEF命令の仮引数で、in/outに同じ名前を指定したときや、OUT引数に値を設定する前に呼び元に戻るときにも出ます。
0そうだね
プレイ済み
返信[2]
親投稿
マギー M191246
勘違いかも知れませんけど IF文の中のYYの項が、おかしな気がします。
0そうだね
プレイ済み
返信[3]
親投稿
マギー M191246
↑(私の上のコメント)エラーとは別の件です。 エラーは、やっぱり Dの未設定が原因だと思います。
0そうだね
プレイ済み
返信[4]
親投稿
みむ*mim hidemimtp
Uninitialized~は私の場合、DEFの戻り値変数に値を入れていない場合に出ることがほとんどです。 IN/OUTに同じ変数を書いても、代入さえしていればエラーにはならないはず。(IN/OUTが同じにする必要がある場面はないと思いますが) あと、命令型のDEFの戻り値はすでにVAR(DIM)された状態なので、VARを書くとduplicateエラーじゃないかな?
0そうだね
プレイ済み
返信[5]
親投稿
HIBIKI 130216
なるほど!では、どこをどうすればいいでしょうか?
0そうだね
プレイ済み
返信[6]
親投稿
HIBIKI 130216
あ!確かにYYがおかしいですね・・・
0そうだね
プレイ済み
返信[7]
親投稿
みむ*mim hidemimtp
すみません、VARされてる変数はOUTに含まれていないものばかりですね。私の勘違いでした。 で、主題のエラーは、「D」が条件付でしか代入されないので、10と11行目の間にでも「D=0」という初期値を書いておかないとダメみたいです。 代入なしなら0を返してくれればいいのにと思いますけど、そういう仕様です。
0そうだね
プレイ済み
返信[8]
親投稿
マギー M191246
0を初期値にするとして、D=0を入れるなら、 6行目より前がいいかと思います。
0そうだね
プレイ済み
返信[9]
親投稿
Dの未設定パターンには、以下の2つがあるように見えます。 1)タッチしていない時が含まれるとき 2)XX-X==0またはYY-Y==0のとき  (タッチしたまま動かさない時を含む) その他気になる点としてATANの引数の順序が逆のような気がします。 (意図的にそうしているのであれば、すみません。) ついでに、「仮引数(形式的パラメータ)」とは、ユーザ定義命令を作るDEF命令に書く引数のことです。ユーザ定義命令呼び出し(実行)時に指定する引数は、「実引数(実パラメータ)」と言ったりします。 あまり使うことはないと思いますが、IN/OUTで同じ変数を使うときは、仮引数に別の名前をつけて、実引数で同じ変数を使えばIN/OUTとして使えます。
0そうだね
プレイ済み
返信[10]
親投稿
HIBIKI 130216
皆さん丁寧なご指導本当に、ありがとうございました!成功しました!素晴らしいです!!
0そうだね
プレイ済み