I wrote a small program to solve for x using the quadratic formula but
instead of receiving a + and - result I am getting two identical
answers...

Is the problem with my math or with my code?

Also, how can I require the input to be a valid rational number?


Thanks


Code:
# Name:   quadratic-jb.rb
# Date:   January 2006
# Author: Jason Bornhoft
# Email:  jbornhoft / gmail.com

def sqr(a)
  a * a
end

def quad_pos(a, b, c)
  (-b + (Math.sqrt( sqr(b) - 4*a*c ))) / 2*a
end

def quad_neg(a, b, c)
  (-b - (Math.sqrt( sqr(b) - 4*a*c ))) / 2*a
end

print "
Solving Quadratic Equations
---------------------------\n"

puts "Enter the value of a: "
a = gets.chomp.to_f

puts "Enter the value of b: "
b = gets.chomp.to_f

puts " Enter the value of c: "
c = gets.chomp.to_f

puts "The formula is " + a.to_s + "x^2 + " + b.to_s + "x + " + c.to_s
puts "and the values of x are:"
puts quad_pos(a, b, c).to_s + " and " + quad_neg(a, b, c).to_s

-- 
Posted via http://www.ruby-forum.com/.