Ruby/Избранное с RubyNews: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 89:
 
''Устаревшее решение'':
<codesource lang=ruby>a = [1, 3, 4,67,-3]
max = a[0]
i = 1
while i < a.size
if a[i]>max
max = a[i]
end
i = i+1
end
puts max</codesource>
 
''Современное решение'':
<codesource lang=ruby>p [1, 3, 4,67,-3].max</codesource>
 
'''Задание 2''': Ввести с клавиатуры размерность массива - целое положительное число, после чего заполнить все его элементы действительными числами, введенными с клавиатуры.
 
''Устаревшее решение'':
<codesource lang=ruby>n = -1
while n < 1
print "Введите размерность массива: "
n = gets.to_i
end
a = Array.new(n)
i = 0
while i < n
print "Введите #{i}-й элемент массива: "
a[i] = gets.to_f
i = i+1
end
p a</codesource>
 
''Современное решение'':
<codesource lang=ruby>$stdout.sync = true # для корректного запуска из SciTE
p Array.new( ( print "Введите размерность массива: " ; gets.to_i ) ){ |i|
print "Введите #{i}-й элемент массива: " gets.to_i
}</codesource>
 
'''Задание 3''': Ввести с клавиатуры массив целых чисел и определить номер минимального элемента массива (отсчет начинается с нуля).
 
''Устаревшее решение'':
<codesource lang=ruby>n = -1
while n < 1
print "Input n: "
n = gets.to_i
end
a = Array.new(n)
i = 0
while i < n
print "Input #{i}-number: "
a[i] = gets.to_f
i = i+1
end
numberMin = 0
min = a[0]
for i in 1 .. n-1
if a[i] < min
numberMin = i
min = a[i]
end
end
puts "Number of minimum is #{numberMin}"</codesource>
 
''Современное решение:''
<codesource lang=ruby>$stdout.sync = true # для корректного запуска из SciTE
a = Array.new( ( print "Input n: " ; gets.to_i ) ){ |i|
print "Input #{i}-number: " gets.to_f
}
puts "Number of minimum is #{ a.index( a.min ) }"</codesource>
 
== Генерация пароля или новый взгляд на метод <code>rand</code> ==