コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
よっしー ◆f2AaAfvRnPJP
2018/5/31 18:43
質問
READでよみこむデータ
FOR I=0 TO 3
READ A
PRINT A
NEXT
DATA 12,24,48,96,192,…

このプログラムを実行すると12 24 48って表示されるけど、n番目のデータからよみこむ方法ないですか?
例えばn=3のとき 48 96 192 みたいに

コメント

アバター
アナログの人 2018/5/31 19:24 ◆krhTNL90uxqM
RESTOREでできると思います。ただ、この方法だとプログラムがかさばるのです...
アバター
よっしー 2018/5/31 19:31 ◆f2AaAfvRnPJP
コメントありがとうございます。
できればかさばらないようにしたいのですが…
アバター
あまさとしおん 2018/5/31 19:35 ◆mzDKTVUAtwqE
ラベルが無い場所で途中から読み始めるのはプチコンの仕様ではできませんね…

ただし、READ命令を使わずにPRGGET$()などでソースコードを取得して、解析する荒技は可能です
ただし、とても面倒です。
アバター
よっしー 2018/5/31 19:50 ◆f2AaAfvRnPJP
コメントありがとうございます。
なんとかできないかなぁ…
アバター
シロ 2018/5/31 20:00 ◆g0oUAxBiWqcj
先頭から読みたくない理由って時間がかかるからなのかな、使用用途はわからないがメモリーか時間どちらかは選ぶ必要はあるのかな。
アバター
アナログの人 2018/5/31 20:05 ◆krhTNL90uxqM
変数Aを配列変数にして、A[n]をPRINTさせる...くらいしか思いつきません。この方法だと、「途中から読み込む」ことにはなりませんし、思いつきで書いたのでできないかもしれません(3DSの充電ができない状態なので試せません)
アバター
よっしー 2018/5/31 20:08 ◆f2AaAfvRnPJP
コメントありがとうございます。
参考にしたいと思います。
アバター
しんいち 2018/5/31 20:55 ◆lHy.hAWXbthn
はじめの例のようなプログラムで、データの何番目以降を表示、としたいなら
FOR I=0 TO 9
READ A
IF I<3 THEN CONTINUE
PRINT A
NEXT
とすれば、4番目以降から表示させることはできますが、データの位置を自在に指定したいなら、配列に入れておくのが無難だと思います。
アバター
よっしー 2018/6/1 15:35 ◆f2AaAfvRnPJP
コメントありがとうございます。
なるほど、参考になりました。ありがとうございました。
アバター
ツララ 2018/6/1 15:53 ◆ArUdBYOYME1V
ラベルとCOPY命令のオフセット機能を使えばいいんじゃね?
汎用的用途に使う一次元配列を用意しておいて、使い終わったらサイズ0に戻して
配列をリセットする方法はしんいちさんが詳しいですよね

かさばらないようにするのが目的ならDATA文の内容を、読み込む桁数を揃えた数値文字列の羅列にして文字列変数に入れておいて
文字列変数を配列の様に扱う方法で中身を取り出すのが簡単なんじゃないです?
複数桁の数値なら例えば三桁に統一するとして

D$="012024048096192…"
KETA=3
FOR N=3 TO …
 P=KETA*N
 A=VAL(D$[P])*100+VAL(D$[P+1])*10+VAL(D$[P+2])
 PRINT A
NEXT

みたいな
アバター
よっしー 2018/6/1 17:20 ◆f2AaAfvRnPJP
コメントありがとうございます。
アバター
頭の悪い人 2018/6/3 3:13 ◆cNXcKm243Rna
まず最初に変数Bなどを用意して、それに何番目からやるのかを記憶させます。
そして、Bの回数分だけreadさせたら、その後を表示させればいいのです。

プログラムの例

B=3
FOR I=0 TO B-2
READ A
NEXT

FOR I=0 TO 3
READ A
PRINT A
NEXT
DATA 12,24,48,96,192,…

ただ、プログラムの容量を小さくしたい場合、しんいちさんみたいなやり方のほうがいい。

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -