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

アバター
しょうご ◆tpp2zBc4h8pI
2018/8/8 21:36
質問
数値配列について
配列を使える方からすれば、あからさまに間違っているプログラムなのかもしれませんが、
VAR SAVEDATA[1000]
VAR SOZAI[1000]



SAVEDATA[14] SOZAI[1000]
のように、ひとつの数値配列の中に別の数値配列を入れたいのですが、エラーになってしまいます。別の方法を使えばこのようなことは可能でしょうか?

コメント

アバター
こういち 2018/8/8 21:54 ◆ou0jbJnEJ0Kb
二次元配列というものがあります。
DIM SAVEDATA[24,1000]
のように宣言すると、24*1000の大きさの配列が作られます。

で、その中の14番目に
DIM SOZAI[1000]

で宣言された配列を格納する場合なら
FOR I=0 TO 999
 SAVEDATA[14,I]=SOZAI[I]
NEXT I
みたいな感じだと思います。
アバター
しょうご 2018/8/8 21:55 ◆tpp2zBc4h8pI
コメントありがとうございます。
24というのは、24個の配列ということでしょうか?
アバター
こういち 2018/8/8 22:01 ◆ou0jbJnEJ0Kb
そんな感じです。
さっきの例だと要素1000の配列が24個ある
みたいな感じです。
要するに配列の配列です。
アバター
しょうご 2018/8/8 22:03 ◆tpp2zBc4h8pI
ありがとうございます!動作しました。
アバター
Ryou Tanpo 2018/8/9 10:53 ◆AI5iRr9FjmkJ
まあただ SmileBASIC の2次元配列はコンマ区切りだから C 言語みたいに1次元配列取り出せないんだよなぁ

int array[3][4] = {
 { 1,2,3,4 },
 { 5,6,7,8 },
 { 9,10,11,12 }
};

func(array[1]); // 5,6,7,8

void func(int p[]) {
 printf("%d,%d,%d,%d",p[0],p[1],p[2],p[3]);
}
アバター
Soybeanman 2018/8/9 14:21 ◆SDLkyXUP6WqK
Ryou Tanpoさん
わかります。
その仕様のせいで何度苦しめられたことか。
文字列の配列とかだと似たような使い方ができるので、
どうしてもというときはこっちを使っています。

VAR ARRAY$[3]
VAR DATA%
VAR A%,B%

RESTRE @DATA
FOR A%=0 TO 2
 FOR B%=0 TO 3
  READ DATA%
  INC ARRAY$[A%],CHR$(DATA%)
 NEXT
NEXT

FUNC ARRAY[1]'5,6,7,8

DEF FUNC P$
 PRINT ASC(P$[0]);",";ASC(P$[1]);",";ASC(P$[2]);",";ASC(P$[3])
END

@DATA
DATA 1,2,3,4
DATA 5,6,7,8
DATA 9,10,11,12
アバター
Ryou Tanpo 2018/8/9 15:30 ◆AI5iRr9FjmkJ
おお、同じことが SmileBASIC で出来てる!!
文字列の配列は僕もかなり前に考えた気はするんですが、僕の場合 考えると何でもかんでも汎用ライブラリ化したくなって結局放置になっちゃうんですよね...
アバター
Soybeanman 2018/8/9 16:13 ◆SDLkyXUP6WqK
VFILER!
そんな便利な物があるとは!
今後ゲームとかでセーブ機能を作るときに使います。
紹介有り難うございます。
アバター
しょうご 2018/8/9 18:13 ◆tpp2zBc4h8pI
SmileBASICも意外と制約があるんですね…

コメントを書く

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

- WEB PATIO -