• ベストアンサー

BASIC/98の1次元配列への変換がわかりません。

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

質問者が選んだベストアンサー

  • ベストアンサー
  • wolv
  • ベストアンサー率37% (376/1001)
回答No.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 こうかな。

becks
質問者

お礼

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

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

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

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.1

「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 こういうことですか? どういうことをしたいのですか?

becks
質問者

補足

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次元配列に変えたいんです。 わかりにくくて申し訳ありません。

関連するQ&A