From f8893a32d7a7308e60d81c974ce850edc6f96179 Mon Sep 17 00:00:00 2001 From: Ebtisam Jelani <93232997+Ebtisam0402@users.noreply.github.com> Date: Thu, 30 Oct 2025 23:02:27 +0000 Subject: [PATCH 1/3] Adding a fraction program --- archive/r/ruby/fraction-math.rb | 74 +++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 archive/r/ruby/fraction-math.rb diff --git a/archive/r/ruby/fraction-math.rb b/archive/r/ruby/fraction-math.rb new file mode 100644 index 000000000..f9092954e --- /dev/null +++ b/archive/r/ruby/fraction-math.rb @@ -0,0 +1,74 @@ +# puts "Hello, Ruby!" +class Fraction + attr_reader :numerator, :denominator + def initialize (numerator, denominator) + @numerator = numerator + @denominator = denominator + end + + + def fraction_math(other_fraction, operator) + num_one = Rational(@numerator, @denominator) + num_two = Rational(other_fraction.numerator, other_fraction.denominator) + + final_result = case operator + when '/' then num_one / num_two + when '*' then num_one * num_two + when '+' then num_one + num_two + when '-' then num_one - num_two + else + "Invalid operator" + end + final_result.to_s + end + + + # Comparison operators + def ==(other) + Rational(@numerator, @denominator) == Rational(other.numerator, other.denominator) + end + + def !=(other) + Rational(@numerator, @denominator) != Rational(other.numerator, other.denominator) + end + + def >=(other) + Rational(@numerator, @denominator) >= Rational(other.numerator, other.denominator) + end + + def <=(other) + Rational(@numerator, @denominator) <= Rational(other.numerator, other.denominator) + end +end + +# Command-line input +if ARGV.length != 3 + puts "Usage: ./fraction-math operand1 operator operand2" + exit +end + +input1, operator, input2 = ARGV + +num1, den1 = input1.split('/').map(&:to_i) +num2, den2 = input2.split('/').map(&:to_i) + +fraction1 = Fraction.new(num1, den1) +fraction2 = Fraction.new(num2, den2) + +# # Comparison logic +# if fraction1 == fraction2 +# puts 0 +# elsif fraction1 != fraction2 +# puts 1 +# elsif fraction1 >= fraction2 +# puts 0 +# elsif fraction1 <= fraction2 +# puts 1 +# end +if operator == "+" + puts fraction1.fraction_math(fraction2,"+") + + +end + + From b1c1c21acea2b19dd3a6f7aab39938d769685a16 Mon Sep 17 00:00:00 2001 From: Ebtisam Jelani <93232997+Ebtisam0402@users.noreply.github.com> Date: Thu, 30 Oct 2025 23:28:45 +0000 Subject: [PATCH 2/3] added all the operators --- archive/r/ruby/fraction-math.rb | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/archive/r/ruby/fraction-math.rb b/archive/r/ruby/fraction-math.rb index f9092954e..219123410 100644 --- a/archive/r/ruby/fraction-math.rb +++ b/archive/r/ruby/fraction-math.rb @@ -39,6 +39,14 @@ def >=(other) def <=(other) Rational(@numerator, @denominator) <= Rational(other.numerator, other.denominator) end + def <(other) + Rational(@numerator, @denominator) < Rational(other.numerator, other.denominator) + end + + def >(other) + Rational(@numerator, @denominator) > Rational(other.numerator, other.denominator) + end + end # Command-line input @@ -67,8 +75,26 @@ def <=(other) # end if operator == "+" puts fraction1.fraction_math(fraction2,"+") - - +elsif operator == "-" + puts fraction1.fraction_math(fraction2,"-") +elsif operator == "/" + puts fraction1.fraction_math(fraction2,"/") +elsif operator == "*" + puts fraction1.fraction_math(fraction2,"*") +elsif operator == "==" + puts fraction1 == fraction2 ? 1 : 0 +elsif operator == "!=" + puts fraction1 != fraction2 ? 1 : 0 +elsif operator == ">" + puts fraction1 > fraction2 ? 1 : 0 +elsif operator == "<" + puts fraction1 < fraction2 ? 1 : 0 +elsif operator == ">=" + puts fraction1 >= fraction2 ? 1 : 0 +elsif operator == "<=" + puts fraction1 <= fraction2 ? 1 : 0 +else + puts "Invalid operator" end From de8bb75e87835ec514f4c3cd349c9e289b03875a Mon Sep 17 00:00:00 2001 From: rzuckerm Date: Fri, 31 Oct 2025 06:48:19 -0500 Subject: [PATCH 3/3] Remove unnecessary comments --- archive/r/ruby/fraction-math.rb | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/archive/r/ruby/fraction-math.rb b/archive/r/ruby/fraction-math.rb index 219123410..ad0ff74ca 100644 --- a/archive/r/ruby/fraction-math.rb +++ b/archive/r/ruby/fraction-math.rb @@ -1,9 +1,8 @@ -# puts "Hello, Ruby!" class Fraction attr_reader :numerator, :denominator def initialize (numerator, denominator) @numerator = numerator - @denominator = denominator + @denominator = denominator end @@ -63,16 +62,6 @@ def >(other) fraction1 = Fraction.new(num1, den1) fraction2 = Fraction.new(num2, den2) -# # Comparison logic -# if fraction1 == fraction2 -# puts 0 -# elsif fraction1 != fraction2 -# puts 1 -# elsif fraction1 >= fraction2 -# puts 0 -# elsif fraction1 <= fraction2 -# puts 1 -# end if operator == "+" puts fraction1.fraction_math(fraction2,"+") elsif operator == "-"