Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 在红宝石中将摄氏度转换为华氏度_Ruby - Fatal编程技术网

Ruby 在红宝石中将摄氏度转换为华氏度

Ruby 在红宝石中将摄氏度转换为华氏度,ruby,Ruby,我想让用户“输入摄氏度:” 然后我想得到的反应是:“华氏温度是:” 这似乎现在起作用了: def convert(c) return (c*9/5)+32 end puts "Enter degrees in Celsius:" c = gets.chomp c = c.to_i f = convert(c) puts "The temperature is #{f} degrees Fahrenheit." 谢谢我知道您对编程非常陌生,所以我将引导您了解代码的各个部分,并解释它们

我想让用户“输入摄氏度:”

然后我想得到的反应是:“华氏温度是:”

这似乎现在起作用了:

def convert(c)
    return (c*9/5)+32
end


puts "Enter degrees in Celsius:"
c = gets.chomp
c = c.to_i
f = convert(c)
puts "The temperature is #{f} degrees Fahrenheit."

谢谢我知道您对编程非常陌生,所以我将引导您了解代码的各个部分,并解释它们的含义和功能

我很确定您熟悉或至少听说过函数。函数接受一组参数,使用这些参数计算内容并返回一个值。编程语言中的函数与数学函数非常相似,如本例所示:

f(x) = x^2
函数
f
接受一个参数(
x
),并返回一个输出(
x^2

函数使我们的生活更轻松,因为如果我们有重复使用的代码,我们可以将代码包装成函数,只使用该函数,而不是反复编写相同的代码。如你所知,摄氏度到华氏度是一个简单的数学公式:

(c*9/5)+32
其中,
c
是摄氏度

我们可以定义一个数学公式
f
,它具有参数
c
,并返回
(c*9/5)+32
。它看起来是这样的:

f(c) = (c*9/5)+32
def convert(c)
    return (c*9/5)+32
end

puts "Enter degrees in celsius: "
puts "The temperature in Fahrenheit is: #{convert(gets.chomp.to_i)}" 
我们现在可以像这样将其转换为ruby代码,并在以后需要时使用它:

def convert(c)
    return (c*9/5)+32
end
使用
puts
我们可以在屏幕上每行打印一些内容,所以让我们这样做:

puts "Enter degrees in celsius: "
现在我们需要用户输入。我们可以通过使用
gets.chomp
并将值存储在变量
c
中来实现这一点:

c = gets.chomp
c = c.to_i
当gets.chomp将其结果存储为字符序列(也称为字符串)时,我们必须将其转换为十进制值。我们通过在
c
上调用方法
。\u i

c = gets.chomp
c = c.to_i
to_i代表to_integer,所以我们要说的是将这个字符串转换为整数,这样我们以后可以在函数中使用它

现在我们准备将c转换为它的华氏值。我们在上面定义了一个函数来为我们完成这项工作,我们必须只调用包含参数的函数

f = convert(c) #pass c as a argument to the function convert and store it in f
f现在保持c的华氏值。让我们打印结果:

puts "The temperature in Fahrenheit is: #{f}" 
,其中,
#{f}
允许我们在字符串中插入f的值

如果您需要最少的代码,可以按如下方式将指令分组:

f(c) = (c*9/5)+32
def convert(c)
    return (c*9/5)+32
end

puts "Enter degrees in celsius: "
puts "The temperature in Fahrenheit is: #{convert(gets.chomp.to_i)}" 

试着理解这里的不同做法,如果你有任何问题,你可以在下面评论

你能发布到目前为止你写的ruby代码吗?这将是一个很好的起点来回答你的问题。
(c*9/5)+32
是整数,因此可能会产生不准确的结果。应该将输入转换为float(可能之后应该对结果进行四舍五入)。此外,
return
是多余的。另外,
to_i
不需要
chomp
@AlekseiMatiushkin我知道这些事情,但我真的不想让事情这么早就复杂化。她毕竟是个初学者,但谢谢你现在让我:)@pr0f3ss,非常感谢你的回答。这是非常清楚的,我现在明白了原因。如果我将来需要指导,我会更加具体,但你做到了!