「どの数字が」「いくつあるか」を集計するようにしてみた。
N=10 ;配列の数
dim a,N
;まず、a()の中に0〜9までの適当な数字を入れる(べつに9までじゃなくても構わない)
randomize
repeat N
a(cnt)=rnd(10)
loop
dim b,2,N ;カウント用の配列を用意する(二次元配列を作るところがポイント)
repeat N
b(0,cnt)=-1 ;どの数字が?を記憶する部分。-1..絶対出でこない値..で初期化しておく
b(1,cnt)=0 ;いくつあるかを記憶する部分。0でクリアしておく
loop
idx=0 ;b()のインデックスを0にしておく
repeat N
i=cnt
flg=0 ;「その数字は集計したよ」フラグを0にする
;過去にaの数字が集計されていたら、そこへ更新する
repeat idx+1 ;b()に登録されているデータの分だけ繰り返す
if a(i)=b(0,cnt){ ;もし、aの数字が過去に集計されていたら、
b(1,cnt)++ ;「いくつあるか」を記憶する部分を+1。
flg=1 ;「その数字は集計したよ」ということにして、
break ;ループを終える
}
loop
;過去にaの数字が集計されていなかったら、新規登録する。
if flg=0{ ;aの数字が集計されていなかったら
b(0,idx)=a(i) ;「どの数字が?」を記憶する部分にaを入れ、
b(1,idx)++ ;「いくつあるか?」を+1して
idx++ ;b()のインデックスを一つ増やす
}
loop
;結果表示
mes "a()の内容"
repeat N
mes str(a(cnt))
loop
mes "集計結果"
repeat idx ;repeat Nにしても構わないが、とりあえず、b()に登録さている分だけ報告する
mes "["+str(b(0,cnt))+"]は"+str(b(1,cnt))+"個あります"
loop
学校の課題じゃなければ良いけど
TABの字数を4文字で。