Discussions

Petit computer 3 Community

うpぬしことふじけんkenta129

10/15/2017 7:37 AM ·Spoilers

Open Closed

READとDATAについて

2つ組み合わせて使うと思うのですが、使い方が分かりません。 説明読んでもいまいち分かりませんでした。 それぞれどう使うのか教えてほしいです。

Advertisement

Comment

This post has no comments.

  • 一回目はA=1,B=2,C=3,D=4 もう一回動くとA=5,B=6,C=7,D=8 READするごとにどんどん先に進むと思うといいよ。

    Yeahs1
    Played
  • では、 A=5,B=6,C=7,D=8 の次にもう一度ループしたら A=1,B=2,C=3,D=4 に戻るんですか?

    Yeahs1
  • いえ、さいごまで読んでいてさらに読もうとするとエラーになります。

    Yeahs1
    Played
  • 分かりました! でもまた分からなくなるかもしれないので、その時はお願いします。

    Yeahs3
  • ループ処理でREAD命令とDATA文を使う時の制御は[DATA文中で「,」で区切られた要素の総数]÷[READ命令で一回に読み込む変数の個数]=[ループ回数]なので 予め一つのDATA文に記述する要素数は幾つまでっていうのを決めておくと制御が楽になりますよ。 一度に複数の変数を読み込まず一個ずつ読み込むのなら、読み込み終了判定用の数値を決めておいて(-1とか)、IF文と組み合わせてRESTORE命令でDATA文の読み込み位置をリセットするか他のラベルに移動させるとかすればエラー回避できますけど。 何にせよDATA文を使う時はラベルとセットで使うと便利ってことですね。

    Yeahs1
    Played
  • ぶっちゃけ、DATAやREADを使わなくても A=1 B=4 C=6 D=10 E=5 F=8 みたいな書き方しても、それはそれで構わないと言えば 構わなかったりします。DATAとREADが生きてくるのは もっと大量のデータを扱いたい時ですから。 それより、READで読み出したい場合は配列を使うと便利ですよ。

    Yeahs0
    Played
  • ラベルと併用ですね!覚えておきます! DIM命令はよく分かっていないので...^^;

    Yeahs0
  • 正確に言うと[DIM命令は分かっていない]ではなくて[配列変数の使い方が分からない]でしたm(_ _)m DIM A[1] でA[0]とA[1]が作られるのは分かるんですが、A[0]をどう使えばいいのかが分かりません...

    Yeahs0
  • >DIM A[1]でA[0]とA[1]が作られるのは分かるんですが< 少し言いづらいのですが、DIM A[1]で作られるのはA[0]のみです。A[0]とA[1]が作られるように宣言するには DIM A[2] と宣言する必要があります。(宣言するときに[]の中に入れた数字の1個前まで作られると覚えれば良い。)

    Yeahs0
    Played
  • 配列は画面写真のように大量のデータを扱うときに使います。 例えば DIM A[10] という配列を宣言したときに A[0]~A[9]が作られます。 ここまでは分かりますね? で、作られた変数は A[0]=10 という風に普通の変数と同じように扱えます。

    Yeahs0
    Played
  • あ、DIMって1つ前までの数しか作られないんですね... 覚えておきます! 通常の変数と同様の動作ってことは DIM A[1] A[0]=1 WHILE A[0] WEND でループになるんですか?

    Yeahs0
  • 当然ループになります。 そして WHILE A[0]  IF RND(2048)==0 THEN A[0]=0 WEND みたいにループ内でA[0]の値を0にすればループから抜けられます。(ただし、あまり賢いやり方とは言えません。WHILE 条件にすれば良いので。)

    Yeahs0
    Played
  • じゃあ、考え方としては VAR A0:VAR A1=DIM A[2] ですか?

    Yeahs0
  • 配列は「 DIM 配列変数名[個数] 」で定義することができて 「 配列変数名[番号] 」を変数名として使えるのです。 DIM A[10] と定義すると A[0] を変数名として使えます カッコがあるけどそれが変数名として使えます このカッコの中の数値は別の変数にしても使えるので DIM A[10] I=3 A[I]=999 という感じでも使えます VAR A0: VAR A1 とどんどん書いて行くのが大変なのと、番号に別の変数が使えるという理由で DIM A[2] として配列にしたほうが便利なのです。

    Yeahs0
    Played
  • READとDATAには、実は「読み込むDATAの位置」というのが内部でこっそり存在しています。 READ は 1回実行するごとに、「読み込むDATAの位置」にある DATAの値を1つ読み込んで、「読み込むDATAの位置」を次のDATAの値にします これによって次のREADは次のDATAの値が読めます(「次のDATA」ではなく「次のDATAの値」です) ちなみに「読み込むDATAの位置」は起動時は最初のDATAの値で、RESTORE 命令でラベル位置に変更できます コレを踏まえて、配列と組み合わせるとこんなことが出来ます。 READ N DIM A[N] FOR I=0 TO N-1 READ A[I] NEXT DATA 10 '個数 DATA 9,8,7,6,5 DATA 4,3,2,1,0

    Yeahs0
    Played
  • 合ってます その考え方でA0~A10と言う変数を定義してみるとわかると思いますが、 VAR A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10 となるのに対して 配列では VAR A[11] と、こんだけで済みます ☆わからないならA0~A1000を定義してみよう 配列もDATA文も、マップ(RPGなどにあるマップのことね)を描くようになれば、けっこうすんなり飲み込めるよ

    Yeahs0
    Played
  • 皆さんありがとうございます! DIMはもっと複雑だと思っていたので、ただの変数として使えることにビックリです!w でも、DIMとDATAってどっちの方が複数の変数を一気に作るときに便利なんですか?

    Yeahs0
  • どっちの方がって言うか、入れ物と内容物の関係だからセットで考えた方がいいかと。 ただCOPY命令とかを使う場合は、入れる物の個数に合わせて自動的に箱の数を調整してくれるだけで(箱の数が足りない場合のみ) ちゃんと自動処理の仕組みを理解してないとバグの原因になったりするから 興味があるならPUSH命令やPOP()命令とか配列のサイズ操作系命令も合わせて、もし手動で処理するとなるとどういう事になるのかを調べてみるといいかも。

    Yeahs0
    Played

Add a Comment

You must sign in to post a comment.

Sign in using a Nintendo Network ID to connect to users around the world by writing posts and comments and by giving Yeahs to other people's posts. You can create a Nintendo Network ID using your Wii U console or your system in the Nintendo 3DS family.

Use of Miiverse Details about Miiverse

Report Violation to Miiverse Administrators

You are about to report a post with content which violates the Miiverse Code of Conduct. This report will be sent to Nintendo's Miiverse administrators and not to the creator of the post.

Violation Type:

Post ID: 3DB-NBL7-DPU-2NLA-BBT-7KA2

Report Violation to Miiverse Administrators

You cannot report posts made automatically by a software title.

Edit Post

Select an action: