昨日書いたRuby勉強会第三回の続きです。今回はみんな課題ちゃんと作ってきてくれたお!!
コマンドライン引数で渡したファイルを読んで、引数で渡した文字列から始まる行をとってくる
- id:InoHiroの課題
- 正規表現に変数入れるときは「#{}」ってやるってことではまってた
- これは勉強になった
- みんなは文字列の結合で対処しているみたいだった
- see also 第3回Ruby勉強会に参加 - INOHILOG
def judge_reg(file_name,word) filename = file_name file = open(filename) while text = file.gets do if(/^#{word}.*/ =~ text) puts text end end end judge_reg(ARGV[0],ARGV[1])
引数に適当な小数渡して、乱数100個発生させ、小数点第一桁だ同じものがいくつあるかカウント
- onoue50の課題
- Floatを文字列に変換して、正規表現でぶっこ抜いた
- miyaga50は問題を置換して解いていた。great!
def get_one_decimal(rand) /\d\.(\d)\d*/ =~ rand.to_s return $1 end /\d\.(\d)\d*/ =~ ARGV[0] my_decimal = $1 count = 0 (1..100).each{ decimal = get_one_decimal(rand()) if(decimal == my_decimal) count += 1 end } puts count
適当なランダムの文字列を生成して、引数に与えたものとマッチするのがいくつあるかを数える
- tantan50の課題
- stringをランダムに生成、stringが入った配列と乱数で対処
- miyaga50の「("a".."z")」という表現が勉強になった
def make_rand_string(array,n) string = "" rand = rand(n) (0..rand).each{ string += array[rand(array.size)] } return string end array = ["a","b","c","d","e"] string = [] want = Regexp.new(ARGV[0]) (0..1000).each{ string.push(make_rand_string(array,4)) } puts string puts "==================================" count = 0 puts string.grep(want).size