2013年2月10日日曜日

7つの言語7つの世界 [Ruby 1日目]

7つの言語7つの世界という本を読んだ。
7種類の言語を紹介している本で、一つ一つの項目は短いが
それぞれ言語の特徴や考え方がわかりやすく紹介されている。

自分は以前から関数型言語等いつも使っている手続き型言語やオブジェクト指向
以外の言語に興味を持っており、いい機会なので
紹介されている言語に関してそれぞれ練習問題をやってみようと思う。

最初はRuby
この本の中では一番メジャー言語だと思われる。
以前から簡単なスクリプトは書いたことがあったので、多少は慣れている。

まずは、開発環境のInstall
今回はUbuntu12.04を使用する。

何も考えずに打ってみる。

$ irb
プログラム 'irb' は以下のパッケージで見つかりました:
* ruby1.8
* ruby1.9.1
次の操作を試してください: sudo apt-get install <選択したパッケージ>

Ubuntuさん相変わらずの親切設計ということで、おっしゃるとおりinstall

$ sudo apt-get install ruby1.9.1

さくっとインストール完了

試してみよう

練習問題をやってみる。

文字列Hello, worldを出力する。

$ irb
irb(main):001:0> puts "Hello, world"
Hello, world
=> nil


文字列Hello, Rubyの中のRubyという単語のインデックスを検索する

$ irb
irb(main):001:0> "Hello, Ruby".index("Ruby")
=> 7


自分の名前を10回出力する。


$ irb
irb(main):001:0> for i in 0..9 do puts "itokin" end
itokin
itokin
itokin
itokin
itokin
itokin
itokin
itokin
itokin
itokin
=> 0..9

for文はrangeオブジェクトが帰ってくるのをはじめて知った。


 文字列"This is sentence number 1"の1から10までカウントアップしながら10回出力する。

 

$ irb
irb(main):001:0> for i in 1..10 do puts "This is sentence number #{i}" end
This is sentence number 1
This is sentence number 2
This is sentence number 3
This is sentence number 4
This is sentence number 5
This is sentence number 6
This is sentence number 7
This is sentence number 8
This is sentence number 9
This is sentence number 10
=> 1..10

乱数を選択するプログラム。


#!/usr/bin/ruby

x=rand(10)
print "Please Input number: "

while STDIN.gets
  if $_.to_i == x
    puts "Success!"
    break
  elsif $_.to_i < x
    puts "Bigger than yours." 
  elsif $_.to_i > x
    puts "Smaller than yours."
  end
  print "Please Input number again: "
end

$ ./rand.rb
Please Input number: 7
Smaller than yours.
Please Input number again: 4
Bigger than yours.
Please Input number again: 5
Bigger than yours.
Please Input number again: 6
Success!

普段使っている言語に近いだけあってそれほど難しくなくかけた。

0 件のコメント:

コメントを投稿