Petit computer 3 Community
うpぬしことふじけんkenta129
10/15/2017 7:37 AM ·Spoilers
READとDATAについて
2つ組み合わせて使うと思うのですが、使い方が分かりません。 説明読んでもいまいち分かりませんでした。 それぞれどう使うのか教えてほしいです。
Share this Post
Comment
This post has no comments.
-
10/16/2017 9:15 AM ·Spoilers
一回目はA=1,B=2,C=3,D=4 もう一回動くとA=5,B=6,C=7,D=8 READするごとにどんどん先に進むと思うといいよ。
Yeahs1Played -
-
-
-
10/16/2017 11:58 PM ·Spoilers
ループ処理でREAD命令とDATA文を使う時の制御は[DATA文中で「,」で区切られた要素の総数]÷[READ命令で一回に読み込む変数の個数]=[ループ回数]なので 予め一つのDATA文に記述する要素数は幾つまでっていうのを決めておくと制御が楽になりますよ。 一度に複数の変数を読み込まず一個ずつ読み込むのなら、読み込み終了判定用の数値を決めておいて(-1とか)、IF文と組み合わせてRESTORE命令でDATA文の読み込み位置をリセットするか他のラベルに移動させるとかすればエラー回避できますけど。 何にせよDATA文を使う時はラベルとセットで使うと便利ってことですね。
Yeahs1Played -
10/17/2017 4:39 AM ·Spoilers
ぶっちゃけ、DATAやREADを使わなくても A=1 B=4 C=6 D=10 E=5 F=8 みたいな書き方しても、それはそれで構わないと言えば 構わなかったりします。DATAとREADが生きてくるのは もっと大量のデータを扱いたい時ですから。 それより、READで読み出したい場合は配列を使うと便利ですよ。
Yeahs0Played -
-
10/17/2017 8:22 PM ·Spoilers
変数の中身を切り替えたいだけならREAD命令とDATA文を使わずに、サブルーチンでMNC2さんの様にやっちゃっても構わないちゃ構わないんですけども (初期化処理とかで自分もよくやりますやります) DATA文を一連の記録テープみたいなものとして見てみると、プログラム中でどういう順番で書いておくかっていうのも工夫のしがいがあったり。 その場合、ラベルは頭出しのための目印みたいなものになりますね。 DIM命令はVAR命令と同じで、そのプログラム中で配列を使える様にする命令ですね。 COPY命令とかと合わせて使う時に必要になりますね。 >sayさん 上手く説明されないと分からないのが分からないんです? 上手い説明の仕方も練習しないと身に付かないですよ?
This comment contains spoilers.
Yeahs0Played -
10/18/2017 4:44 AM ·Spoilers
正確に言うと[DIM命令は分かっていない]ではなくて[配列変数の使い方が分からない]でしたm(_ _)m DIM A[1] でA[0]とA[1]が作られるのは分かるんですが、A[0]をどう使えばいいのかが分かりません...
Yeahs0 -
10/18/2017 6:11 AM ·Spoilers
>DIM A[1]でA[0]とA[1]が作られるのは分かるんですが< 少し言いづらいのですが、DIM A[1]で作られるのはA[0]のみです。A[0]とA[1]が作られるように宣言するには DIM A[2] と宣言する必要があります。(宣言するときに[]の中に入れた数字の1個前まで作られると覚えれば良い。)
Yeahs0Played -
10/18/2017 7:36 AM ·Spoilers
配列は画面写真のように大量のデータを扱うときに使います。 例えば DIM A[10] という配列を宣言したときに A[0]~A[9]が作られます。 ここまでは分かりますね? で、作られた変数は A[0]=10 という風に普通の変数と同じように扱えます。
Yeahs0Played -
10/18/2017 8:54 AM ·Spoilers
あ、DIMって1つ前までの数しか作られないんですね... 覚えておきます! 通常の変数と同様の動作ってことは DIM A[1] A[0]=1 WHILE A[0] WEND でループになるんですか?
Yeahs0 -
10/18/2017 9:11 AM ·Spoilers
当然ループになります。 そして WHILE A[0] IF RND(2048)==0 THEN A[0]=0 WEND みたいにループ内でA[0]の値を0にすればループから抜けられます。(ただし、あまり賢いやり方とは言えません。WHILE 条件にすれば良いので。)
Yeahs0Played -
-
10/18/2017 10:40 PM ·Spoilers
配列は「 DIM 配列変数名[個数] 」で定義することができて 「 配列変数名[番号] 」を変数名として使えるのです。 DIM A[10] と定義すると A[0] を変数名として使えます カッコがあるけどそれが変数名として使えます このカッコの中の数値は別の変数にしても使えるので DIM A[10] I=3 A[I]=999 という感じでも使えます VAR A0: VAR A1 とどんどん書いて行くのが大変なのと、番号に別の変数が使えるという理由で DIM A[2] として配列にしたほうが便利なのです。
Yeahs0Played -
10/18/2017 10:55 PM ·Spoilers
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
Yeahs0Played -
10/18/2017 11:35 PM ·Spoilers
合ってます その考え方でA0~A10と言う変数を定義してみるとわかると思いますが、 VAR A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10 となるのに対して 配列では VAR A[11] と、こんだけで済みます ☆わからないならA0~A1000を定義してみよう 配列もDATA文も、マップ(RPGなどにあるマップのことね)を描くようになれば、けっこうすんなり飲み込めるよ
Yeahs0Played -
10/21/2017 8:28 PM ·Spoilers
皆さんありがとうございます! DIMはもっと複雑だと思っていたので、ただの変数として使えることにビックリです!w でも、DIMとDATAってどっちの方が複数の変数を一気に作るときに便利なんですか?
Yeahs0 -
10/21/2017 10:19 PM ·Spoilers
どっちの方がって言うか、入れ物と内容物の関係だからセットで考えた方がいいかと。 ただCOPY命令とかを使う場合は、入れる物の個数に合わせて自動的に箱の数を調整してくれるだけで(箱の数が足りない場合のみ) ちゃんと自動処理の仕組みを理解してないとバグの原因になったりするから 興味があるならPUSH命令やPOP()命令とか配列のサイズ操作系命令も合わせて、もし手動で処理するとなるとどういう事になるのかを調べてみるといいかも。
Yeahs0Played
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.
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.
Report Violation to Miiverse Administrators
You cannot report posts made automatically by a software title.







