• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:行列に関するプログラムについて)

行列Aの最大成分と最小成分を捜し、行番号と列番号を出力するプログラムを作成する方法

このQ&Aのポイント
  • 行列Aの最大成分と最小成分を捜し、それぞれの行番号と列番号を出力するプログラムを作成する方法について説明します。
  • プログラム中で行列Aの要素を比較し、最大成分と最小成分を求めます。
  • 最大成分と最小成分の行番号と列番号を出力するために、ループを使用して要素を比較します。

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

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.3

>しかし、200行において、sにiを、tにjを代入し、210行において、pにiを、qにjを代入したいのですが、上手くいきません。 200 IF A(s,t)<A(i,j) THEN LET s=i LET t=j のような書き方はできません。 THENの後に命令を2つ以上実行したい場合は、 200 IF A(s,t)<A(i,j) THEN 201 LET s=i 202 LET t=j 203 END IF のような書き方をします。 あと、 190 FOR j=2 TO n は、NGです。 これだと、A(1,1)は初期値としているのでいいんですが、A(2,1)やA(3,1)などが調べられていません。 190 FOR j=1 TO n としなければなりません。

SATA_YUKI
質問者

お礼

nag0720様ありがとうございます。「IF ~ END IF」文をすっかり忘れておりました。お陰様で、プログラムも動きました。大変ありがとうございました。

その他の回答 (2)

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

sとtも最大最小にはなってないよ。 自分がコンピュータになったつもりで、それぞれの変数がどういう値をなるのか紙に書きながら調べて見ましょう。

SATA_YUKI
質問者

お礼

nag0720様ありがとうございます。次のように考えてみました。しかし、200行において、sにiを、tにjを代入し、210行において、pにiを、qにjを代入したいのですが、上手くいきません。もし宜しければアドバイスいただければと思います。 100 INPUT m 110 INPUT n 120 DIM A(m,n) 130 MAT INPUT A 140 LET s=1 150 LET t=1 160 LET p=1 170 LET q=1 180 FOR i=1 TO m 190 FOR j=2 TO n 200 IF A(s,t)<A(i,j) THEN LET s=i LET t=j 210 IF A(p,q)>A(i,j) THEN LET p=i LET q=j 220 NEXT j 230 NEXT i 240 PRINT "最大成分はA(";s;",";t;")、最小成分はA(";p;",";q;")" 250 END

SATA_YUKI
質問者

補足

nag0720様ありがとうございます。以下のように訂正させていただき、BASICで確かに最大・最小の値は求めることはできました。しかし、最大・最小の値をもつ行・列を出力することができません。 お手数おかけ致しますが、アドバイスいただければと思います。  100 INPUT m  110 INPUT n  120 DIM A(m,n)  130 MAT INPUT A  140 LET s=A(1,1)  150 LET t=A(1,1)  160 FOR i=1 TO m  170 FOR j=1 TO n-1  180 IF s<A(i,j+1) THEN LET s=A(i,j+1)  190 IF t>A(i,j+1) THEN LET t=A(i,j+1)  200 NEXT j  210 NEXT i  220 PRINT "最大成分は";s,"最小成分は";t  230 END

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「行番号」や「列番号」を出力するためにはそれらを記憶しておかないとだめだよね.

SATA_YUKI
質問者

補足

Tacosan様ありがとうございます。次のように考えてみました。しかし、200行において、sにiを、tにjを代入し、210行において、pにiを、qにjを代入したいのですが、上手くいきません。もし宜しければアドバイスいただければと思います。 100 INPUT m 110 INPUT n 120 DIM A(m,n) 130 MAT INPUT A 140 LET s=1 150 LET t=1 160 LET p=1 170 LET q=1 180 FOR i=1 TO m 190 FOR j=2 TO n 200 IF A(s,t)<A(i,j) THEN LET s=i LET t=j 210 IF A(p,q)>A(i,j) THEN LET p=i LET q=j 220 NEXT j 230 NEXT i 240 PRINT "最大成分はA(";s;",";t;")、最小成分はA(";p;",";q;")" 250 END