にたまごほうれん草アーカイブ

はてなダイアリーで書いてた「にたまごほうれん草」という日記のアーカイブです。現在は「にたまごほうれん草ブログ」を運営中です。

課題

ファイル名にタイムスタンプと日付を付与したファイルを作成する

久しぶりにこれの続き。JRubyの動作確認のついでに。 if ARGV.size != 1 then puts "usage: #{__FILE__} [file]";exit end filename = ARGV.shift + Time.now.strftime("-%Y-%m-%d") File.open(filename, "wb").write("Hello!")

時間と日付の処理。システム時間を取得し、'DD-MON-YYYY', 'mm-dd-yyyy', 'dd/mm/yy'などに変換

こんなのでいいのかな…? now = Time.now puts now.strftime("%d-%B-%Y") puts now.strftime("%m-%d-%Y") puts now.strftime("%d/%m/%Y") 実行結果。 $ ruby ex09.rb 20-March-2007 03-20-2007 20/03/2007「新しい言語を覚えるため」だからその言語でのやり…

数字の中から最大値・最小値を探す

require 'pp' arr = Array.new 20.times { arr << rand(100) # 乱数の配列を生成 } pp arr puts 'max = ' + arr.max.to_s puts 'min = ' + arr.min.to_s 出力結果 $ ruby ex02-maxmin.rb [54, 44, 2, 64, 85, 69, 49, 87, 57, 63, 41, 85, 54, 64, 77, 82, 1…

フィボナッチ数列

def fib m,n,count if count > 1 return fib(m+n,m,count-1) else return n end end count = ARGV.shift.to_i if count && count > 0 (1..count).each {|i| print fib(1,1,i).to_s + ' ' } puts '' end 出力結果 $ ruby ex02-fib.rb 20 1 1 2 3 5 8 13 21 34…

配列の開始、中間、最後にアイテムを追加・削除する

require 'pp' arr = ['a', 'b', 'c', 'd'] e = 'e' pp arr.push(e) pp arr.insert((arr.size/2).truncate,e) pp arr.unshift(e) 出力結果 $ ruby ex14.rb ["a", "b", "c", "d", "e"] ["a", "b", "e", "c", "d", "e"] ["e", "a", "b", "e", "c", "d", "e"]

キーボードから文字列([a..zA..Z0..9])を入力し、これらの文字列を昇順・降順にソートする

こんなのでいいのでしょうか。(きっとsortも自分で実装すべきなんだと思うけど手っ取り早く) print 'input : ' output = STDIN.gets.chomp.split(//).sort.join puts 'result: ' + output 出力結果は以下の通り。 $ ruby ex03.rb input : u92ehuvcdifusbfd…

「新しいプログラミング言語を習得するための15の方法」をやってみる

新しいプログラミング言語を習得するための15の方法をやってみようと思う、Rubyで。文字列操作に有利なスクリプト言語のためじゃない、という言葉がどこからか聞こえてきそうだけど知らん振り。順番バラバラだけど順次更新して行く予定。 無限ループ内に1,2,…