第 2 章: 数値計算と関数

文字列から整数への変換

鶴亀算のプログラムを作成する.

crane_and_turtle.rb

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 鶴亀算 (つるかめざん)

puts("The number of heads?")
heads=Integer(gets())

puts("The number of legs?")
legs=Integer(gets())

cranes=(heads*4 - legs) / 2
puts("#{cranes} cranes and #{heads-cranes} turtles")

crane_and_turtle.rb の実行結果は:

[wtopia ruby.begin]$ ruby crane_and_turtle.rb
The number of heads?
5
The number of legs?
14
3 cranes and 2 turtles

四則演算

calc_integer.rb

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# calc_integer.rb

puts("Enter first numeric value")
sx = gets()
ix = Integer(sx)

puts("Enter second numeric value")
sy = gets()
iy = Integer(sy)

puts("#{ix} + #{iy} = #{ix+iy}")
puts("#{ix} - #{iy} = #{ix-iy}")
puts("#{ix} * #{iy} = #{ix*iy}")
puts("#{ix} / #{iy} = #{ix/iy}")

calc_integer.rb の実行結果は:

[wtopia ruby.begin]$ ruby calc_integer.rb
Enter first numeric value
10
Enter second numeric value
20
10 + 20 = 30
10 - 20 = -10
10 * 20 = 200
10 / 20 = 0
[wtopia ruby.begin]$ ruby calc_integer.rb
Enter first numeric value
20
Enter second numeric value
10
20 + 10 = 30
20 - 10 = 10
20 * 10 = 200
20 / 10 = 2

その他の演算

calc_other.rb

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# calc_other.rb

puts("Enter first numeric value")
sx = gets()
ix = Integer(sx)

puts("Enter second numeric value")
sy = gets()
iy = Integer(sy)

puts("#{ix} % #{iy} = #{ix % iy}")
puts("#{ix} ** #{iy} = #{ix ** iy}")

calc_other.rb の実行結果は:

[wtopia ruby.begin]$ ruby calc_other.rb
Enter first numeric value
10
Enter second numeric value
3
10 % 3 = 1
10 ** 3 = 1000
[wtopia ruby.begin]$ ruby calc_other.rb
Enter first numeric value
4
Enter second numeric value
2
4 % 2 = 0
4 ** 2 = 16

関数を定義する

def_func.rb

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# def_func.rb

def read_integer()
  puts("Enter numeric value")
  s = gets()
  Integer(s)
end

def show_result(operator, x, y, result)
  puts("#{x} #{operator} #{y} = #{result}")
end

ix = read_integer()
iy = read_integer()
show_result("+", ix, iy, ix  +  iy)
show_result("-", ix, iy, ix  -  iy)
show_result("*", ix, iy, ix  *  iy)
show_result("/", ix, iy, ix  /  iy)
show_result("%", ix, iy, ix  %  iy)
show_result("**", ix, iy, ix ** iy)

def_func.rb の実行結果は:

[wtopia ruby.begin]$ ruby def_func.rb
Enter numeric value
20
Enter numeric value
10
20 + 10 = 30
20 - 10 = 10
20 * 10 = 200
20 / 10 = 2
20 % 10 = 0
20 ** 10 = 10240000000000

RDoc コマンドによるドキュメントの生成

下記のコマンドで, HTML のドキュメントを生成することができる:

rdoc def_func.rb -o func_doc -t function_documentation

-o オプションは生成するディレクトリを指定する.

-t オプションは HTML ファイルのタイトルを指定する.