帯グラフの場合、全体を求めておいて、その 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
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########################&&&&&&&&&&
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########################&&&&&&&&&&
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########################&&&&&&&&&&
前期の色出力をつけるとさらに見やすくなるので、工夫せよ。