アプリ版:「スタンプのみでお礼する」機能のリリースについて

2次元配列から1次元配列への変換が
どうやればいいのか全くわかりません。
どなたか教えて下さい。
よろしくお願いします。

A 回答 (3件)

「2次元配列から1次元配列への変換」


だけでは何をしたいのか良くわかりませんが、

例えば

DIM MAT2(3,5)
DIM MAT1(15)
FOR I = 1 TO 3
 FOR J = 1 TO 5
  K=(I-1)*5+J
  MAT1(K)=MAT2(I,J)
 NEXT
NEXT

こういうことですか?
どういうことをしたいのですか?

この回答への補足

100 REM 問
110 DEFINT A,B,C,I,J
120 DIM A(3,3),B(3,3),C(3,3)
130 REM
140 REM データ入力
150 REM
160 FOR I=1 TO 3
170 FOR J=1 TO 3
180 READ A(I,J),B(I,J)
190 NEXT J
200 NEXT I
210 DATA 1,5,2,6,3,1
220 DATA 4,4,5,2,6,7
230 DATA 7,3,8,9,9,8
240 REM
250 REM 和を求める
260 REM
270 FOR I=1 TO 3
280 FOR J=1 TO 3
290 C(I,J)=A(I,J)+B(I,J)
300 NEXT J
310 NEXT I
320 REM
330 REM 結果の表示
340 REM
350 FOR I=1 TO 3
360 FOR J=1 TO 3
370 PRINT USING "###";A(I,J);
380 NEXT J
390 IF I=2 THEN
400 PRINT " +";
410 ELSE PRINT " ";
420 END IF
430 FOR J=1 TO 3
440 PRINT USING"###";B(I,J);
450 NEXT J
460 IF I=2 THEN
470 PRINT " =";
480 ELSE PRINT " ";
490 END IF
500 FOR J=1 TO 3
510 PRINT USING"###";C(I,J);
520 NEXT J
530 PRINT
540 NEXT I
550 END
これを1次元配列に変えたいんです。
わかりにくくて申し訳ありません。

補足日時:2004/02/24 20:50
    • good
    • 0

行幅nのM(i,j)は


K((i-1)*n+j)とi-1にするのがポイントではないですか。
コンピュタメモリは本来番地的には線形(ひも状)ですが、2次元配列を実現するためには、上記のようなロジックを使うはず。
    • good
    • 0

DIM A(9),B(9),C(9)



FOR I=1 TO 9
 READ A(I),B(I)
NEXT I

'(DATA省略)

FOR I=1 TO 9
 C(I) = A(I) + B(I)
NEXT I

FOR I = 1 TO 3

 FOR J = 1 TO 3
  PRINT USING "###";A((I-1)*3+J);
 NEXT J

 IF I=2 THEN
  PRINT " + "
 ELSE
  PRINT " "
 ENDIF

 FOR J = 1 TO 3
  PRINT USING "###";B((I-1)*3+J);
 NEXT J

 IF I=2 THEN
  PRINT " = "
 ELSE
  PRINT " "
 ENDIF

 FOR J = 1 TO 3
  PRINT USING "###";C((I-1)*3+J);
 NEXT J

 PRINT
NEXT I

こうかな。
    • good
    • 0
この回答へのお礼

親切に教えてくださって、
ほんとにありがとうございました!

お礼日時:2004/02/25 04:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!