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