我完全地新编程和这个论坛。今天,我写我的第一个剧本,它到目前为止的工作:红宝石小数
def deltay(y2, y1)
#puts "Delta y=#{y2 - y1}"
y2 - y1
end
def deltax(x2, x1)
#puts "Delta x=#{x2- x1}"
x2-x1
end
def m(vardeltay, vardeltax)
#puts "m=#{vardeltay/vardeltax}"
vardeltay/vardeltax
end
def n(gradient, varx, vary)
vary-gradient*varx
end
#activate the lines 21-25, when n is given.
#puts "Welcome to my linear function script. Please start with telling me your n:"
#print "> " ; n=STDIN.gets.to_i
#puts "So your n is #{n}."
puts "The first thing I need is your m.Please input your y2 then press RETURN and enter your y1:"
print "> " ; vary2=STDIN.gets.to_i ; vary1=STDIN.gets.to_i ; deltay(vary2, vary1)
puts "Now, please input your x2 then press RETURN and enter your x1:"
print "> " ; varx2=STDIN.gets.to_i ; varx1=STDIN.gets.to_i ; deltax(varx2, varx1)
puts "\n"
puts "Your m equals #{m(deltay(vary2, vary1), deltax(varx2, varx1))}"
varm=m(deltay(vary2, vary1), deltax(varx2, varx1))
puts "So, now we need n. Your current equalation looks like this:y=#{varm}m+n"
puts "Lets insert your point, you gave me earlier : P(#{varx2}, #{vary2})"
puts "So, that is:"
puts "#{vary2}=#{varm*varx2}+n \nNow we going to perform |-#{varm*varx2}. And that equals #{n(varm, varx2, vary2)}" ; n=n(varm, varx2, vary2) #{#{vary2-(varm*varx2)}=n" ; n=vary2-(varm*varx2)}
puts "So this is our equation so far:"
puts "f(x)=#{varm}x+#{n}"
puts "Now let's get to y, okay? So I need a value for x:"
print "> " ; varx=STDIN.gets.to_i ; puts "y=#{varm*varx+n}"
的问题是,如果我插入了Y2,Y1,X2或X1负整数(-1)/小数(1,2) ,它将无法正常工作。也许我的问题真的很愚蠢,但我没有找到任何帮助我解决问题的方法。
欢迎计算器!请定义为什么此代码无法正常工作。提供你的输入,你想要的输出和错误的*输出,以更好地理解你的需求。否则,这个问题将会被视为不明确或不正确的话题。 – 2014-09-02 19:14:19
定义“将无法正常工作”。 – 2014-09-02 19:15:16
我以为我说得很清楚。例如,当你给他y2 = 1,2;或y2 = -3。即使只有一个整数有“”或为负,该脚本将不工作:[http://puu.sh/biFO9/8ea61c593f.png] 另外,我只注意到它不会工作时(X2-X1) >(Y2-Y1)。 @Define“无法正常工作”。 那么,m将被计算为假,因此整个均衡得到错误。 – Kaiton 2014-09-02 19:18:46