V
Size: a a a
V
c
Н
c
c
#эту переменную я поставил. чтобы тестить удобней было.
size_of_slice=12
coll = (1..10)
coll.each_slice(size_of_slice) { |x| p x}
#Задание
#Написать функцию : без использования each_slice
#coll.my_each_slice(size_of_slice) { |x| p x }
class Range
def my_each_slice(slice_size)
self.begin.step(self.end,slice_size) do |v|
arr =[]
1.upto(slice_size) do |x|
arr.push(v+x-1) if v+x-1 <= self.end
end
p arr
#где-то тут должен быть yeild
end
end
end
#сделал без блока ( . ниасилил.
coll.my_each_slice(size_of_slice)
AP
10 class Range
11 def my_each_slice(slice_size)
12 self.begin.step(self.end,slice_size) do |v|
13 arr =[]
14 1.upto(slice_size) do |x|
15 arr.push(v+x-1) if v+x-1 <= self.end
16 end
17 yield arr
18 end
19 end
20 end
21
23 coll.my_each_slice(size_of_slice) { |x| p x }
AP
c
IR
h
КП
SR
A
SR
SR
A
S
SR
S
S