#!/usr/koeki/bin/ruby #coding: euc-jp data = Array.new val = 0 sum = 0 sqsum = 0 stdev = 0 STDERR.print("処理を開始します。入力し終えたら Ctrl-D を押して下さい。\n") while true printf("%d個目のデータの値を入力して下さい!", data.length + 1) val = gets if val == nil print("データの入力を終了します。\n") break else val = val.to_f data << val end end #p data data.each{|comp| sum += comp } ave = sum / data.length data.each{|comp| sqsum += ((comp - ave) ** 2) } l = data.length - 1 dev = sqsum / data.length / l stdev = dev ** 0.5 printf("データの総数: \t %5d\n", data.length) printf("平均: \t\t %5.1f \n", ave) printf("分散: \t\t %5.1f \n", dev) printf("標準偏差: \t %5.1f \n", stdev)