programs/calculator/calculator_no_parens.rb
tests/_examples/programs/calculator/calculator_no_parens.rb in the metorex repository.
# Calculator without parentheses (where possible)
class Calculator
def initialize
@result = 0
end
def result
@result
end
def add(a, b)
@result = a + b
@result
end
def subtract(a, b)
@result = a - b
@result
end
def multiply(a, b)
@result = a * b
@result
end
def divide(a, b)
if b == 0
puts "Error: Division by zero"
return nil
end
@result = a / b
@result
end
def modulo(a, b)
if b == 0
puts "Error: Modulo by zero"
return nil
end
@result = a % b
@result
end
end
calc = Calculator.new
puts "Addition: 10 + 3 = #{calc.add(10, 3)}"
puts "Subtraction: 10 - 3 = #{calc.subtract(10, 3)}"
puts "Multiplication: 10 * 3 = #{calc.multiply(10, 3)}"
puts "Division: 10 / 3 = #{calc.divide(10, 3)}"
puts "Modulo: 10 % 3 = #{calc.modulo(10, 3)}"
puts "Division by zero:"
calc.divide(10, 0)
puts "Last result: #{calc.result}"
Output:
Addition: 10 + 3 = 13
Subtraction: 10 - 3 = 7
Multiplication: 10 * 3 = 30
Division: 10 / 3 = 3
Modulo: 10 % 3 = 1
Division by zero:
Error: Division by zero
Last result: 1