- ベストアンサー
BASIC/98の1次元配列への変換がわかりません。
2次元配列から1次元配列への変換が どうやればいいのか全くわかりません。 どなたか教えて下さい。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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 こうかな。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
行幅nのM(i,j)は K((i-1)*n+j)とi-1にするのがポイントではないですか。 コンピュタメモリは本来番地的には線形(ひも状)ですが、2次元配列を実現するためには、上記のようなロジックを使うはず。
- wolv
- ベストアンサー率37% (376/1001)
「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次元配列に変えたいんです。 わかりにくくて申し訳ありません。
お礼
親切に教えてくださって、 ほんとにありがとうございました!