From d2d84950f6a5cd62578cacbdae0f0af147b50d99 Mon Sep 17 00:00:00 2001 From: Pushpa Date: Wed, 8 Aug 2018 10:11:25 -0700 Subject: [PATCH 1/2] Create calculator.rb --- calculator.rb | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 calculator.rb diff --git a/calculator.rb b/calculator.rb new file mode 100644 index 0000000..a6abf6d --- /dev/null +++ b/calculator.rb @@ -0,0 +1,56 @@ +puts "Hello! Would you like to use the calculator? Enter yes or no" +cal_use = gets.chomp + +while cal_use == "yes" + + puts "Welcome to the Calculator program! Which operator would you like to use\n 1. add(+)\n 2. subtract(-)\n 3. multiply(*)\n 4. divide(/)" + + operator = gets.chomp + + if operator == "+" || operator == "add" + puts "pick 1st number" + num1 = gets.chomp.to_f + + puts "pick 2nd number" + num2 = gets.chomp.to_f + + answer = num1 + num2 + + elsif operator == "-" || operator == "subtract" + puts "pick 1st number" + num1 = gets.chomp.to_f + + puts "pick 2nd number" + num2 = gets.chomp.to_f + + answer = num1 - num2 + + elsif operator == "*" || operator == "multiply" + puts "pick 1st number" + num1 = gets.chomp.to_f + + puts "pick 2nd number" + num2 = gets.chomp.to_f + + answer = num1 * num2 + + elsif operator == "/" || operator == "divide" + puts "pick 1st number" + num1 = gets.chomp.to_f + + puts "pick 2nd number" + num2 = gets.chomp.to_f + + while num2 <= 0 + puts "please enter a different number for your 2nd number, as it has to be greater than 0" + num2 = gets.chomp.to_f + end + answer = num1 / num2 + else + puts "please only pick from following operators\n 1. add(+)\n 2. subtract(-)\n 3. multiply(*)\n 4. divide(/)" + operator = gets.chomp + end + puts answer + puts "would you like to play again? enter yes or no" + cal_use = gets.chomp +end From 699c2464207f09ed9443bf51966f7a7c7a7688cc Mon Sep 17 00:00:00 2001 From: Pushpa Date: Fri, 10 Aug 2018 14:16:52 -0700 Subject: [PATCH 2/2] Update calculator.rb --- calculator.rb | 77 ++++++++++++++++++++------------------------------- 1 file changed, 30 insertions(+), 47 deletions(-) diff --git a/calculator.rb b/calculator.rb index a6abf6d..0200c5c 100644 --- a/calculator.rb +++ b/calculator.rb @@ -1,56 +1,39 @@ -puts "Hello! Would you like to use the calculator? Enter yes or no" -cal_use = gets.chomp - -while cal_use == "yes" - - puts "Welcome to the Calculator program! Which operator would you like to use\n 1. add(+)\n 2. subtract(-)\n 3. multiply(*)\n 4. divide(/)" - - operator = gets.chomp - - if operator == "+" || operator == "add" - puts "pick 1st number" - num1 = gets.chomp.to_f - - puts "pick 2nd number" - num2 = gets.chomp.to_f - - answer = num1 + num2 +def operator_method(num1, num2, operator) + case operator + when "+", "add" + puts num1 + num2 + when "-", "subtract" + puts num1 - num2 + when "*", "multiply" + puts num1 * num2 + when "/", "divide" + while num2 <= 0 + puts "please enter a number greater than 0" + num2 = gets.chomp + end + puts num1 / num2 + end +end - elsif operator == "-" || operator == "subtract" - puts "pick 1st number" - num1 = gets.chomp.to_f - puts "pick 2nd number" - num2 = gets.chomp.to_f +def valid_number_user() + puts "please enter a valid number" + num = gets.chomp - answer = num1 - num2 + while num.to_i.to_s != num + puts "please enter a valid number" + num = gets.chomp + end - elsif operator == "*" || operator == "multiply" - puts "pick 1st number" - num1 = gets.chomp.to_f +return num.to_i +end - puts "pick 2nd number" - num2 = gets.chomp.to_f +puts "Welcome to the Calculator program! Which operator would you like to use\n 1. add(+)\n 2. subtract(-)\n 3. multiply(*)\n 4. divide(/)" - answer = num1 * num2 +operator = gets.chomp - elsif operator == "/" || operator == "divide" - puts "pick 1st number" - num1 = gets.chomp.to_f +num1 = valid_number_user() +num2 = valid_number_user() - puts "pick 2nd number" - num2 = gets.chomp.to_f +operator_method(num1, num2, operator) - while num2 <= 0 - puts "please enter a different number for your 2nd number, as it has to be greater than 0" - num2 = gets.chomp.to_f - end - answer = num1 / num2 - else - puts "please only pick from following operators\n 1. add(+)\n 2. subtract(-)\n 3. multiply(*)\n 4. divide(/)" - operator = gets.chomp - end - puts answer - puts "would you like to play again? enter yes or no" - cal_use = gets.chomp -end