Skip to content

Instantly share code, notes, and snippets.

@seniorihor
Created March 13, 2012 15:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save seniorihor/2029326 to your computer and use it in GitHub Desktop.
Save seniorihor/2029326 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
# Author: seniorihor (12.03.2012)
class MyArray
def initialize
@array = []
@max_positive = 0
@max_minimum = 0
end
def show_condition
print <<-CONDITION
1. Дан целочисленный массив. Необходимо вывести вначале его элементы с четными индексами, а затем - с нечетными. (COMPLETE!)
2. Дан целочисленный массив. Необходимо вывести вначале его элементы с нечетными индексами, а затем - четными. (COMPLETE!)
3. Дан целочисленный массив. Вывести номер первого из тех его элементов, которые удовлетворяют двойному неравенству: A[0] < A[i] < A[-1]. Если таких элементов нет, то вывести [ ]. (COMPLETE!)
4. Дан целочисленный массив. Вывести номер последнего из тех его элементов, которые удовлетворяют двойному неравенству: A[0] < A[i] < A[-1]. Если таких элементов нет, то вывести [ ]. (COMPLETE!)
5. Дан целочисленный массив. Преобразовать его, прибавив к четным числам первый элемент. Первый и последний элементы массива не изменять. (COMPLETE!)
6. Дан целочисленный массив. Преобразовать его, прибавив к четным числам последний элемент. Первый и последний элементы массива не изменять. (COMPLETE!)
7. Дан целочисленный массив. Преобразовать его, прибавив к нечетным числам последний элемент. Первый и последний элементы массива не изменять. (COMPLETE!)
8. Дан целочисленный массив. Преобразовать его, прибавив к нечетным числам первый элемент. Первый и последний элементы массива не изменять. (COMPLETE!)
9. Дан целочисленный массив. Заменить все положительные элементы на значение минимального.
10. Дан целочисленный массив. Заменить все положительные элементы на значение максимального.
11. Дан целочисленный массив. Заменить все отрицательные элементы на значение минимального.
12. Дан целочисленный массив. Заменить все отрицательные элементы на значение максимального.
13. Дан целочисленный массив. Осуществить циклический сдвиг элементов массива влево на одну позицию.
14. Дан целочисленный массив. Осуществить циклический сдвиг элементов массива вправо на одну позицию.
15. Дан целочисленный массив. Проверить, образуют ли элементы арифметическую прогрессию. Если да, то вывести разность прогрессии, если нет - вывести nil.
16. Дан целочисленный массив. Проверить, образуют ли элементы геометрическую прогрессию. Если да, то вывести знаменатель прогрессии, если нет - вывести nil.
17. Дан целочисленный массив. Найти количество его локальных максимумов.
18. Дан целочисленный массив. Найти количество его локальных минимумов.
19. Дан целочисленный массив. Найти максимальный из его локальных максимумов.
20. Дан целочисленный массив. Найти минимальный из его локальных минимумов.
21. Дан целочисленный массив. Определить количество участков, на которых его элементы монотонно возрастают.
22. Дан целочисленный массив. Определить количество участков, на которых его элементы монотонно убывают.
CONDITION
end
def create_an_array
@array = gets.chomp.split(' ').collect! {|i| i = i.to_i}
end
def print_numbers_with_odd_indices
@array.index(@array.first).upto(@array.rindex(@array.last)) do |i|
case @array.index(@array[i]) %2 != 0
when true
print @array[i], ' '
end
end
end
def print_numbers_with_even_indices
@array.index(@array.first).upto(@array.rindex(@array.last)) do |i|
case @array.index(@array[i]) %2 == 0
when true
print @array[i], ' '
end
end
end
def first_element_greater_than_first_and_less_than_last
@array.index(@array.first).upto(@array.rindex(@array.last)) do |i|
case @array[i] > @array.first and @array[i] < @array.last
when true
puts @array[i]
break
end
case i
when @array.rindex(@array.last)
puts '[ ]'
end
end
end
def last_element_greater_than_first_and_less_than_last
@array.rindex(@array.last).downto(@array.index(@array.first)) do |i|
case @array[i] > @array.first and @array[i] < @array.last
when true
puts @array[i]
break
end
case i
when @array.index(@array.first)
puts '[ ]'
end
end
end
def adding_the_first_element_to_even_numbers
print @array.first, ' '
@array.index(@array.first)+1.upto(@array.rindex(@array.last)-1) do |i|
case @array[i] %2 == 0
when true
print @array[i]+=@array.first, ' '
else print @array[i], ' '
end
end
puts @array.last
end
def adding_the_last_element_to_even_numbers
print @array.first, ' '
@array.index(@array.first)+1.upto(@array.rindex(@array.last)-1) do |i|
case @array[i] %2 == 0
when true
print @array[i]+=@array.last, ' '
else print @array[i], ' '
end
end
puts @array.last
end
def adding_the_first_element_to_odd_numbers
print @array.first, ' '
@array.index(@array.first)+1.upto(@array.rindex(@array.last)-1) do |i|
case @array[i] %2 != 0
when true
print @array[i]+=@array.first, ' '
else print @array[i], ' '
end
end
puts @array.last
end
def adding_the_last_element_to_odd_numbers
print @array.first, ' '
@array.index(@array.first)+1.upto(@array.rindex(@array.last)-1) do |i|
case @array[i] %2 != 0
when true
print @array[i]+=@array.last, ' '
else print @array[i], ' '
end
end
puts @array.last
end
def find_the_maximum_positive_element
@max_positive = 0
@array.index(@array.first).upto(@array.rindex(@array.last)) do |i|
# case @array[i] > @max_positive
# when true
# @max_positive = @array[i]
# puts @max_positive
# puts @array[i]
# else puts 'ne true'
# end
print @array.max>0 ? @array.max : nil
end
end
def find_the_minimum_positive_element
# в процесі...
end
def replace_all_the_positive_elements_to_the_minimum
@array.index(@array.first).upto(@array.rindex(@array.last)) do |i|
case @array[i] >= 0
when true
@array[i] = @array.min
print @array[i], ' '
else print @array[i], ' '
end
end
end
def replace_all_the_positive_elements_to_the_maximum
@array.index(@array.first).upto(@array.rindex(@array.last)) do |i|
case @array[i] >= 0
when true
@array[i] = @array.max
print @array[i], ' '
else print @array[i], ' '
end
end
end
end
ma = MyArray.new
#ma.show_condition
ma.create_an_array
#ma.print_numbers_with_even_indices
#ma.print_numbers_with_odd_indices
#ma.first_element_greater_than_first_and_less_than_last
#ma.last_element_greater_than_first_and_less_than_last
#ma.adding_the_first_element_to_even_numbers
#ma.adding_the_last_element_to_even_numbers
#ma.adding_the_first_element_to_odd_numbers
#ma.adding_the_last_element_to_odd_numbers
#ma.replace_all_the_positive_elements_to_the_minimum
#ma.replace_all_the_positive_elements_to_the_maximum
ma.find_the_minimum_positive_element
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment