> データを取っていって、
> その上位5個を棒グラフを表示させる方法がわかりません。
誤ってHSP3掲示板(サブ掲示板?)のほうに書き込んでしまいました。
もう解決済みかもしれませんが、一応追加しておきます。
サブのほうに書き込んだものとは変数名を変えています。
ちょっと分かりずらかったので。
バブルソートが簡単でお勧めです(処理は遅いけど)。
処理の手順はソートアルゴリズムとか基本交換法とかで検索してください。
#データを用意
data_arr=24,12,10,5,28,4,12,4,2,7;データ
no_arr=0,1,2,3,4,5,6,7,8,9;No
data1=0:data2=0:data3=0:data4=0;
str_tmp="";
#ソート前のデータを表示
repeat length(data_arr)
str_tmp+=str(no_arr(cnt))+"="+str(data_srr(cnt));
if(cnt<length(data_arr)-1){
str_tmp+=",";
}
loop
mes "ソート前:"+str_tmp;
str_tmp="";
#ソート部分
repeat length(data_arr)-1
repeat length(data_arr)-1-i
data1=data_arr(cnt);
data2=data_arr(cnt+1);
data3=no_arr(cnt);
data4=no_arr(cnt+1);
#比較演算子を逆向きにすれば小さい順に並ぶ
if(data1<data2){
data_arr(cnt)=data2;
data_arr(cnt+1)=data1;
no_arr(cnt)=data4;
no_arr(cnt+1)=data3;
}
loop
i++;
loop
#ソート後のデータを表示
repeat length(data_arr)
str_tmp+=str(no_arr(cnt))+"="+str(data_arr(cnt));
if(cnt<length(data_arr)-1){
str_tmp+=",";
}
loop
mes "ソート後:"+str_tmp;
#順位となんちゃって棒グラフを表示
repeat 5
str_tmp=str(cnt+1)+"位 No."+str(no_arr(cnt))+":";
repeat data_arr(cnt)
str_tmp+="*";
loop
mes strtmp;
loop
適当に書いたので参考程度に。