<<前 [TOP] 次>>
メモ帳を開いて次のプログラムを作ってみましょう。
【hairetsu1.rb】
# hairetsu1.rb a = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] for i in 0..9 do tmp = a[i] * a[i] puts a[i].to_s + '*' + a[i].to_s + '=' + tmp.to_s end
配列を扱うには次のようにします。
配列宣言と同時に直接値を代入する。
a = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
また、配列に代入した値を使用する場合は、次のように使用します。
a[0] a[3]
配列をわかりやすく書くと次のようになります。
a = [ a[0],a[1],a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9] ]
ですので、a[0]は1であり、a[5]は6、a[9]は10となります。
これを使って計算などを行うには次のようにしてやります。
tmp = a[5] + a[7]
変数tmpの値は14となります。
また、配列の数を表すには次のようなやり方があります。
変数名.length
使用例 a.length
今回の a.length は 10になります。
出力結果を見てみましょう。
メモ帳を開いて次のプログラムを作ってみましょう。
【hairetsu2.rb】
# hairetsu2.rb data = [10, 75, 24, 32, 98, 72, 88, 43, 60, 35, 54, 62, 2, 12, 82] sum = 0 for i in 0..(data.length-1) do sum += data[i] end puts '合計:' + sum.to_s
合計を求めるプログラムです。
sum += data[i]
の意味はsum = sum + data[i]
と同じ意味です。
繰り返されるごとにdata[0]から足されていき、最後には合計が求められます。
出力結果です。
メモ帳を開いて次のプログラムを作ってみましょう。
【hairetsu3.rb】
# hairetsu3.rb data = [10, 75, 24, 32, 98, 72, 88, 43, 60, 35, 54, 62, 2, 12, 82] sum = 0 for i in 0..(data.length-1) do sum += data[i] ave = (sum.to_f/data.length.to_f).round(4) end puts '平均:' + ave.to_s
合計を求めるまでは、hairetsu2.rbと同じですが平均を求める式が違うことをやっています。
変数の計算は同じ型同士でしなくてはなりません。
違う型同士で演算すると思わぬエラーがでたり、予想と違った出力結果になったりします。
今回は結果を小数点まで求めたかったので、変数aveをfloat型としました。
float型の指定はto_f
関数を使用します。
型をそろえることでfloat同士の演算となりますので、小数点以下も求めることができます。
さらにround()
関数を使用して少数第四位で切り捨てています。
出力結果です。
メモ帳を開いて次のプログラムを作ってみましょう。
【hairetsu4.rb】
# hairetsu4.rb data = [10, 75, 24, 32, 98, 72, 88, 43, 60, 35, 54, 62, 2, 12, 82] max = data[0] for i in 1..(data.length-1) do if data[i] > max then max = data[i] end end puts '最大値:' + max.to_s
最大値を求めるプログラムです。
結果を確認してみましょう。
↓↓クリックして頂けると励みになります。