Ruby numbers support integer and decimal arithmetic.

numeric expression Ruby evaluates arithmetic expressions before assigning the result to a variable.

Numbers

radius
numbers.rb
Replay: real traced execution (multi-file project)
radius = 5
pi = 3.14
diameter = radius * 2
area = (pi * radius * radius).round(2)

puts "diameter=#{diameter}"
puts "area=#{area}"
radius = 3
pi = 3.14
diameter = radius * 2
area = (pi * radius * radius).round(2)

puts "diameter=#{diameter}"
puts "area=#{area}"
radius = 10
pi = 3.14
diameter = radius * 2
area = (pi * radius * radius).round(2)

puts "diameter=#{diameter}"
puts "area=#{area}"
  1. radius ← 5, pi ← 3.14, diameter ← 10, area ← 78.5

    1radius→ 5 = 5  #@radius=3, 102pi→ 3.14 = 3.143diameter→ 10 = radius5 * 24area→ 78.5 = (pi3.14 * radius5 * radius).round(2)56puts "diameter=#{diameter10}"7puts "area=#{area78.5}"
    outputdiameter=10
    area=78.5
  1. radius ← 3, pi ← 3.14, diameter ← 6, area ← 28.26

    1radius→ 3 = 32pi→ 3.14 = 3.143diameter→ 6 = radius3 * 24area→ 28.26 = (pi3.14 * radius3 * radius).round(2)56puts "diameter=#{diameter6}"7puts "area=#{area28.26}"
    outputdiameter=6
    area=28.26
  1. radius ← 10, pi ← 3.14, diameter ← 20, area ← 314.0

    1radius→ 10 = 102pi→ 3.14 = 3.143diameter→ 20 = radius10 * 24area→ 314.0 = (pi3.14 * radius10 * radius).round(2)56puts "diameter=#{diameter20}"7puts "area=#{area314.0}"
    outputdiameter=20
    area=314.0

Follow the Numbers

  1. radius starts at 5.
  2. pi is 3.14.
  3. diameter = radius * 2 becomes 10.
  4. area = (pi * radius * radius).round(2) becomes 78.5.
  5. The program prints diameter=10 and area=78.5. | radius | diameter | area | | --- | --- | --- | | 3 | 6 | 28.26 | | 5 | 10 | 78.5 | | 10 | 20 | 314.0 |

Exercise: numbers.rb

Reproduce diameter=10 and area=78.5, then use the pinned radii 3 and 10 to predict each diameter and area.