release:feat: add interactive menu for task selection and input methods

lab3
Artem-Darius Weber 1 month ago
parent f015f43c99
commit 205b10ff9d

@ -1,5 +1,4 @@
def indices_sorted_by_descending_values(array)
indices = array.each_with_index.to_a
sorted_indices = indices.sort_by { |(element, index)| -element }
@ -49,23 +48,67 @@ def prime_divisors(number)
end
# Ex
array = [5, 3, 8, 1, 7]
puts "Indices in order of decreasing elements:"
puts indices_sorted_by_descending_values(array).join(", ")
# IO
def get_array_input(input_method)
if input_method == 1
puts "Введите элементы массива через пробел:"
gets.chomp.split.map(&:to_i)
elsif input_method == 2
puts "Введите имя файла:"
file_name = gets.chomp
File.read(file_name).split.map(&:to_i)
else
raise "Неверный метод ввода."
end
end
def get_number_input(input_method)
if input_method == 1
puts "Введите число:"
gets.chomp.to_i
elsif input_method == 2
puts "Введите имя файла:"
file_name = gets.chomp
File.read(file_name).to_i
else
raise "Неверный метод ввода."
end
end
array = [5, 1, 8, 3, 8, 7]
puts "Elements between first and second maximum:"
puts elements_between_first_and_second_max(array).join(", ")
puts "Выберите задачу для выполнения:"
puts "1. Вывести индексы массива в порядке убывания элементов."
puts "2. Найти элементы между первым и вторым максимальным."
puts "3. Найти элементы между первым и последним максимальным."
puts "4. Найти минимальный четный элемент."
puts "5. Найти все простые делители числа."
array = [5, 1, 8, 3, 7, 8]
puts "Elements between first and last maximum:"
puts elements_between_first_and_last_max(array).join(", ")
task_number = gets.chomp.to_i
array = [5, 2, 8, 3, 7]
puts "Minimal even element:"
puts minimal_even_element(array)
puts "Выберите метод ввода данных (1: С клавиатуры, 2: Из файла):"
input_method = gets.chomp.to_i
number = 28
puts "Prime divisors:"
puts prime_divisors(number).join(", ")
case task_number
when 1
array = get_array_input(input_method)
puts "Индексы в порядке убывания элементов:"
puts indices_sorted_by_descending_values(array).join(", ")
when 2
array = get_array_input(input_method)
puts "Элементы между первым и вторым максимальным:"
puts elements_between_first_and_second_max(array).join(", ")
when 3
array = get_array_input(input_method)
puts "Элементы между первым и последним максимальным:"
puts elements_between_first_and_last_max(array).join(", ")
when 4
array = get_array_input(input_method)
puts "Минимальный четный элемент:"
puts minimal_even_element(array)
when 5
number = get_number_input(input_method)
puts "Простые делители числа:"
puts prime_divisors(number).join(", ")
else
puts "Неверный номер задачи."
end

Loading…
Cancel
Save