質問<3441>2006/10/21
from=あい
「コンピュータ」


次のプログラムについて教えて下さい。

次ののBASICプログラムを実行すると数字の列が4回出力される。それがどのような数字
の列か調べよ。また、その数字の列が出力される理由を説明し、このプログラムの目的
を示せ。

100 DIM A(5)
110 FOR J=1 TO 5 !ここで、配列Aに文番号270のデータを読み込んでいる。
120 READ A(J)
130 NEXT J
140 FOR I=1 TO 4
150 LET K=1
160 FOR J=I+1 TO 5
170 IF A(J)>A(K) THEN LET K=J   #(注意)「>」は半角
180 NEXT J
190 LET T=A(I)
200 LET A(I)=A(K)
210 LET A(K)=T
220 FOR J=1 TO 5
230 PRINT A(J);
240 NEXT J
250 PRINT
260 NEXT I
270 DATA 20,33,18,21,69
280 END

★希望★完全解答★

お便り2006/10/22
from=JJon.com


完全解答ではありません,あしからず。

プログラムを実行したけれど,数字の意味することがわからなかった
ということでしょうか。このプログラム,行番号150が間違っています。
        × 150 LET K=1
        ○ 150 LET K=I
これを修正して実行。途中経過ごとに4回出力される数字の列は次のとおり。
        69 33 18 21 20
        69 33 18 21 20
        69 33 21 18 20
        69 33 21 20 18
4行目の最終結果から,プログラムの目的が予想できるのではないでしょうか。
その数字の列が出力される理由も,5つの配列要素の内容をイラストに描いて,
命令による変化の様子を1行ずつ追っていけば説明できるように思います。