単二電池

100 DIM A(5)
110 FOR J=1 TO 5
120 READ A(J)  
130 NEXT J  
140 FOR I=1 TO 4 
150 LET K=I   
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 5,3,7,2,1, 
280 END
このようなプログラムがあります。
いろいろ調べたのですがそれぞれの文の意味と
何を求めるプログラムか教えて下さい。
5つの数の組み合わせで小さい数から順番に4個
かなと思ったのですが???

A 回答 (2件)

見たところ、機種?コンパイラ?のBasicでしょう?


とりあえず、解説~♪

>100 DIM A(5)
Aと言う0~5の変数(箱)を用意します
>110 FOR J=1 TO 5
>120 READ A(J)
>130 NEXT J
270行にある「5,3,7,2,1」をAに1から順番に入れていきます.このときAは、
A(1..5):5,3,7,2,1
になってます
>140 FOR I=1 TO 4
260行の「NEXT I」までIを1~4まで入れ替えてループします
>150 LET K=I
KにIを代入します
>160 FOR J=I+1 TO 5
180行の「NEXT J」までJをI+1~5まで入れ替えてループします
>170 IF A(J)<A(K) THEN LET K=J
A(J)がA(K)より小さい場合、KにJを代入します
>180 NEXT J
略   
>190 LET T=A(I)   
>200 LET A(I)=A(K)  
>210 LET A(K)=T   
A(I)とA(K)を入れ替えてます
>220 FOR J=1 TO 5  
>230 PRINT A(J);  
>240 NEXT J    
>250 PRINT     
Aの中身を1行で表示します。
>260 NEXT I

>270 DATA 5,3,7,2,1, 

>280 END


で、結果表示が・・・
1 3 7 2 5
1 2 7 3 5
1 2 3 7 5
1 2 3 5 7
と出てくるかな?

べたなバブルソートアルゴリズムだと思いますよ
他のソートアルゴリズムは、下記を参照ください

参考URL:http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/al …
    • good
    • 0
この回答へのお礼

大変わかりやすい説明ありがとうございました。
おかげで理解できました。
感謝感激です。

お礼日時:2004/12/30 17:32

とりあえず、走らせてみたらどうですか?

    • good
    • 0

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