From a89e9397f9c046f196a1fd74ad6d55bde3af3ea8 Mon Sep 17 00:00:00 2001 From: elle-terch Date: Wed, 8 Aug 2018 10:11:28 -0700 Subject: [PATCH] Create calculator.rb --- calculator.rb | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 calculator.rb diff --git a/calculator.rb b/calculator.rb new file mode 100644 index 0000000..37d27a3 --- /dev/null +++ b/calculator.rb @@ -0,0 +1,63 @@ +#Welcome user and accept numbers to be evaluated. Validate user input. +puts "Welcome to the calculator program!" +puts "You will need to enter two numbers to be evaluated." +puts "Please enter the first." +begin + number_1 = gets.chomp + number_1 = Float(number_1) + rescue + puts "There is an error with your number. Please make sure you're using numbers/decimals only and try again." + retry +end + +puts "Please enter another number." +begin + number_2 = gets.chomp + number_2 = Float(number_2) + rescue + puts "There is an error with your number. Please make sure you're using numbers/decimals only and try again." + retry +end + +#create a method for each operator +def add_two_numbers(first_number, second_number) + puts "#{first_number} + #{second_number} = #{first_number + second_number}" +end + +def subtract_two_numbers(first_number, second_number) + puts "#{first_number} - #{second_number} = #{first_number - second_number}" +end + +def multiply_two_numbers(first_number, second_number) + puts "#{first_number} * #{second_number} = #{first_number * second_number}" +end + +def divide_two_numbers(first_number, second_number) + if second_number == 0 + puts "#{first_number} / #{second_number} = According to Wikipedia, the result of any number divided by zero is undefined." + else + puts "#{first_number} / #{second_number} = #{first_number / second_number}" + end +end + +#prompt the user to choose their operator +puts "Choose your operator! Type the name or symbol from the list below:" +puts "1. add (+)" +puts "2. subtract (-)" +puts "3. multiply (*)" +puts "4. divide (/)" +operator = gets.chomp + +#use the appropriate method to evaluate the values +case operator + when "add", "+" + add_two_numbers(number_1, number_2) + when "subtract", "-" + subtract_two_numbers(number_1, number_2) + when "multiply", "*" + multiply_two_numbers(number_1, number_2) + when "divide", "/" + divide_two_numbers(number_1, number_2) + else + puts "I'm sorry. That is not a valid option." +end