Ruby 1.9.2
Версия реализации Ruby языка программирования RubyВерсия Ruby.
Примеры:
Факториал - Ruby (15):
Используется рекурсивное определение факториала.
#! /usr/bin/env ruby
def factorial(n)
if n == 0
1
else
n * factorial(n - 1)
end
end
0.upto(16) do |n|
print(n, "! = ", factorial(n), "\n")
end
Hello, World! - Ruby (184):
puts "Hello, World!"
Факториал - Ruby (185):
Факториал вычисляется как произведение набора чисел от 1 до n, дополненного еще одной 1 на случай 0!.
def fact(n)
(1..n).inject(1) {|a,b| a*b}
end
(0..16).each {|x| puts "#{x}! = #{fact(x)}"}
Числа Фибоначчи - Ruby (186):
Используется рекурсивное определение чисел Фибоначчи.
def fibonacci(n)
if n < 3
1
else
fibonacci(n - 1) + fibonacci(n - 2)
end
end
(1..16).each {|n| puts "#{fibonacci(n)}, "}
puts "..."
Квадратное уравнение - Ruby (281):
puts 'A = '
A = gets.chomp.to_f
if (A == 0)
puts 'Not a quadratic equation.'
return
end
puts 'B = '
B = gets.chomp.to_f
puts 'C = '
C = gets.chomp.to_f
D = B*B - 4*A*C
if (D == 0)
puts 'x = '+(-B/2/A).to_s
else
if (D > 0)
puts 'x1 = '+((-B-Math.sqrt(D))/2/A).to_s
puts 'x2 = '+((-B+Math.sqrt(D))/2/A).to_s
else
puts 'x1 = ('+(-B/2/A).to_s+','+(Math.sqrt(-D)/2/A).to_s+')'
puts 'x2 = ('+(-B/2/A).to_s+','+(-Math.sqrt(-D)/2/A).to_s+')'
end
end
CamelCase - Ruby (282):
Функция gets.chomp
читает строку из стандартного потока ввода. Функция split
с аргументом-регулярным выражением разбивает строку на части, разделенные подстроками, которые соответствуют этому выражению. Затем к каждой части применяется функция capitalize
, которая переводит всю строку в нижний регистр, а первый символ — в верхний. Наконец, части строки объединяются в одну строку.
puts gets.chomp.split( /[^a-zA-Z]+/ ).map {|w| w.capitalize}.join
CamelCase - Ruby (283):
Пример работает точно так же, как этот пример, но функция scan
извлекает из строки части, которые соответствуют регулярному выражению, а не отбрасывает их, как это делает split
.
puts gets.chomp.scan( /[a-zA-Z]+/ ).map {|w| w.capitalize}.join
Комментарии
]]>blog comments powered by Disqus
]]>