commit
308812f0a4
@ -0,0 +1,68 @@
|
||||
|
||||
|
||||
def find_min_element_for(arr)
|
||||
min_element = arr[0]
|
||||
for element in arr
|
||||
min_element = element if element < min_element
|
||||
end
|
||||
min_element
|
||||
end
|
||||
|
||||
|
||||
def find_min_element_while(arr)
|
||||
min_element = arr[0]
|
||||
index = 0
|
||||
while index < arr.size
|
||||
min_element = arr[index] if arr[index] < min_element
|
||||
index += 1
|
||||
end
|
||||
min_element
|
||||
end
|
||||
|
||||
|
||||
def find_first_positive_index_for(arr)
|
||||
for index in 0...arr.size
|
||||
return index if arr[index] > 0
|
||||
end
|
||||
nil
|
||||
end
|
||||
|
||||
|
||||
def find_first_positive_index_while(arr)
|
||||
index = 0
|
||||
while index < arr.size
|
||||
return index if arr[index] > 0
|
||||
index += 1
|
||||
end
|
||||
nil
|
||||
end
|
||||
|
||||
|
||||
def find_first_positive_for(arr)
|
||||
for element in arr
|
||||
return element if element > 0
|
||||
end
|
||||
nil
|
||||
end
|
||||
|
||||
|
||||
def find_first_positive_while(arr)
|
||||
index = 0
|
||||
while index < arr.size
|
||||
return arr[index] if arr[index] > 0
|
||||
index += 1
|
||||
end
|
||||
nil
|
||||
end
|
||||
|
||||
# INPUT
|
||||
array = [-10, -5, 0, 3, 5, -2]
|
||||
|
||||
puts "Минимальный элемент (for): #{find_min_element_for(array)}"
|
||||
puts "Минимальный элемент (while): #{find_min_element_while(array)}"
|
||||
|
||||
puts "Индекс первого положительного элемента (for): #{find_first_positive_index_for(array)}"
|
||||
puts "Индекс первого положительного элемента (while): #{find_first_positive_index_while(array)}"
|
||||
|
||||
puts "Первый положительный элемент (for): #{find_first_positive_for(array)}"
|
||||
puts "Первый положительный элемент (while): #{find_first_positive_while(array)}"
|
@ -0,0 +1,62 @@
|
||||
|
||||
|
||||
def find_min_element(arr)
|
||||
min_element = arr[0]
|
||||
arr.each do |element|
|
||||
min_element = element if element < min_element
|
||||
end
|
||||
min_element
|
||||
end
|
||||
|
||||
|
||||
def find_first_positive_index(arr)
|
||||
arr.each_with_index do |element, index|
|
||||
return index if element > 0
|
||||
end
|
||||
nil
|
||||
end
|
||||
|
||||
|
||||
def find_first_positive(arr)
|
||||
arr.each do |element|
|
||||
return element if element > 0
|
||||
end
|
||||
nil
|
||||
end
|
||||
|
||||
|
||||
def main
|
||||
method_name = ARGV[0]
|
||||
file_path = ARGV[1]
|
||||
|
||||
if method_name.nil? || file_path.nil?
|
||||
puts "Неправльный формат ввода. Использование: ruby program.rb <method_name> <file_path>"
|
||||
puts "method_name: 'min', 'first_positive_index' или 'first_positive'"
|
||||
exit
|
||||
end
|
||||
|
||||
begin
|
||||
array = File.read(file_path).split.map(&:to_i)
|
||||
rescue Errno::ENOENT
|
||||
puts "Файл не найден: #{file_path}"
|
||||
exit
|
||||
end
|
||||
|
||||
case method_name
|
||||
when 'min'
|
||||
result = find_min_element(array)
|
||||
puts "Минимальный элемент: #{result}"
|
||||
when 'first_positive_index'
|
||||
result = find_first_positive_index(array)
|
||||
puts "Индекс первого положительного элемента: #{result.nil? ? 'Нет положительного элемента' : result}"
|
||||
when 'first_positive'
|
||||
result = find_first_positive(array)
|
||||
puts "Первый положительный элемент: #{result.nil? ? 'Нет положительного элемента' : result}"
|
||||
else
|
||||
puts "Неизвестный метод: #{method_name}"
|
||||
puts "Доступные методы: 'min', 'first_positive_index', 'first_positive'"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
main if __FILE__ == $0
|
@ -0,0 +1 @@
|
||||
-10 -5 0 3 5 -2
|
Loading…
Reference in new issue