基礎プログラミング II 第 4 回 (繰り返しは引っ張りだそう) 「帯グラフ」 講義ノート目次

帯グラフの場合、全体を求めておいて、その 100 分率で グラフを配分すれば良い。


def beltgraph(data)
ratio = Array.new 帯グラフの割合をしまう配列 全体の個数を求める tot = 0 data.each{|no|
tot += no
} data.each{|r|
ratio << r.to_f / tot data を 1 つとりだして r にしまい、それを全体で割る。割り算なので少数値変換しておく。
} ratio ratio を返す
end def belt(graph)
col = ["@","#","&","*","&"] パターンは 5 種類にした block = Array.new 何ブロック塗るかをしまう for component in graph
c = component * 75 75 マス分を 100 % に分布させる c = (c + 0.5).to_i マス目の数を四捨五入 block << c
end k = 0 帯の太さ while k < 3
for i in 0 .. block.length - 1 print("#{col[i]}" * block[i]) end print("\n") k +=1
end
end

実行すると 例えば anq = [8, 5, 2] において、

%./def_beltgraph.rb
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########################&&&&&&&&&&
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########################&&&&&&&&&&
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########################&&&&&&&&&&

帯グラフの解説を下側にでもつけるべきだが、各自工夫せよ。

前期の色出力をつけるとさらに見やすくなるので、工夫せよ。