-
-
Save paul-ihnatolia/2029332 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
# -*- coding: utf-8 -*- | |
# Author: seniorihor (12.03.2012) | |
class MyArray | |
def initialize(arr) | |
@array = arr.clone() | |
@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 print_numbers_with_odd_indices | |
@array.size.times {|i| print @array[i].to_s + " " if(i%2!=0)} | |
puts "" | |
end | |
def print_numbers_with_even_indices | |
@array.size.times {|i| print @array[i].to_s + " " if(i%2==0)} | |
puts "" | |
end | |
def first_element_greater_than_first_and_less_than_last | |
j = nil | |
@array.size.times {|i| j=i if (@array[i]>@array.first && @array[i]<@array.last)} | |
puts j.nil? ? "[]" : j | |
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 | |
l=[20,35,6,86,32,4,-1,0] | |
ma = MyArray.new(l) | |
#ma.show_condition | |
puts "Elements, that are on odd places: " | |
ma.print_numbers_with_odd_indices | |
puts "Elements, that are on even plaeces: " | |
ma.print_numbers_with_even_indices | |
puts "Index of element that, UMOVA: " | |
ma.first_element_greater_than_first_and_less_than_last | |
#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