○並べ替えプログラム
10 read n →データの個数を100行のdata文から読み込む
20 dim x(n) →変数xはx(1), x(2), x(3), ・・, x(n)のように番号を付けられ,n個のデータの記憶場所が確保される
30 for i=1 to n → iは1からnまで変化しながら次行でデータx(i)を110行のdata文から読み込む
40 read x(i)
50 next i →30行と繰り返し文を構成している
55 rem ----- sorting ----- →コメント行(実行とは関係ないメモ)
60 for i=1 to n →90行と繰り返し構文
65 for j=i+1 to n →85行と繰り返し構文
70 if x(j)<x(i) then →80行と判断文を構成(もし条件が成立すれば以下を実行)
72 kari=x(i) →kariにx(i)の値を代入
74 x(i)=x(j) →x(i)にx(j)の値を代入
76 x(j)=kari → x(j)にkariの値を代入,x(j)とx(i)の入れ替えが実行される,
80 end if
85 next j →
90 next i →
91 rem ----- output of result ----- →結果の表示(メモ)
92 for i=1 to n
94 print x(i);
96 next i
100 data 10
110 data 6,2,5,4,10,9,1,8,3,7
120 end
実行すると
1 2 3 4 5 6 7 8 9 10
が得られる.
演習 上記プログラムを入力,実行し,構文を理解せよ.

SWAPによる配列の入れ替え
十進BASICではSWAPが利用できるが、コマンドとして準備されていないBAISCインタプリタもあるので前例を理解すること。
60 for i=1 to n
65 for j=i+1 to n
70 if x(j)<x(i) then
75 swap x(i),x(j) →前出のプログラムの72,74,76行を一行で実行する
80 end if
85 next j
90 next i
課題1 先週の試験の点数(下記)を「点数の高い順」に並べるプログラムを作りなさい。
ただし、データの数はプログラムには書き込まないこと。
78,71,70,60,101,87,80,23,95,51,84,81,16,84,93,76,88,96,91,76,72,45,83,66,48, 87,66,99,95,111,83,54,67,91,96,81,78,43,74,85,84,82,3,84,71,83,81,72,22,46,103, 62,77,65,67,92,40,76,109,20,33,6,79,61,90,88,95,96,37,74,95,77,35,100,96,56, 75,89,46,73,63,62,90,71,94,42,71,73,12,92,50,55,54,75,83,75,60,23,38,62,54,69, 39,60,55,87,64 |
|