Petitverse
ゲストさん (
ログイン
)
ログイン
コミュニティ内検索
コミュニティ一覧
Petitverse ご利用ガイド
Petitverse からのおしらせ
プチコン 非公式コミュニティ
トピック
よっしー
◆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,…
ただ、プログラムの容量を小さくしたい場合、しんいちさんみたいなやり方のほうがいい。
ツララ
2018/6/4 7:37 ネタバレ
◆ArUdBYOYME1V
むしろ長くなってるじゃないか・・・
ってツッコミを期待してたんですけど、それが無いあたり本気度のたかが知れてますね
ホントにサイズを小さくしたいんなら
DATA文に書いてる数値を数列化できるなら数列化して、数式で導き出すようにすればグンと小さく出来るんですけど
何で誰もそれ言わないのか不思議過ぎる
例えばこの場合だと1番目が12、2番目が24、・・・、5番目が192
その先は分かんないですけどここまでなら
(1<<N)*12
っていう式で表せれますよね。なので
FOR I=N TO …
A=(1<<I)*12
PRINT A
NEXT
ってやれば、長ったらしいDATA文そのものが要らなくなるので
かなり短く出来るんですけど
このコメントはネタバレを含んでいます。
このコメントをひらく
コメントを書く
こちらは「プチコン3号」「プチコンBIG」など、
プチコンシリーズ
に関する話題を扱った
コミュニティです
プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
ユーザー登録なしで書き込みができます
秘密の合い言葉は成りすましの防止 (
トリップ機能
)、書き込みの編集時の本人認証に使用します
秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります
normal
happy
like
surprized
frustrated
puzzled
画像
ネタバレ
投稿する
-
WEB PATIO
-