Last active
November 28, 2018 22:08
-
-
Save VladHurma/52c1fb0d29d3614d974fba2cf19d5b02 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
# frozen_string_literal: true | |
class Minimalize_all_positive_numbers | |
def initialize | |
@numbers = [] | |
end | |
def self.run | |
new.run | |
end | |
def run | |
set_numbers | |
show_array_before_refactoring | |
min = find_min_element | |
refactor_array(min) | |
show_refactored_array_to_user | |
end | |
private | |
def set_numbers | |
(0..9).each do |i| | |
@numbers[i] = rand(-5..5) | |
end | |
end | |
def show_array_before_refactoring | |
print "#{@numbers}\n" | |
end | |
def find_min_element | |
@numbers.min | |
end | |
def refactor_array(min) | |
@numbers.map! do |num| | |
@numbers[@numbers.index(num)] = min if num > 0 else num | |
end | |
end | |
def show_refactored_array_to_user | |
print "#{@numbers}\n" | |
end | |
end | |
Minimalize_all_positive_numbers.run |
aya-soft
commented
Nov 28, 2018
- Многократно вычисляется @numbers.min
- Мы фактически строим из одного массива другой, какой метод-итератор для этого есть в Руби?
1. Многократно вычисляется @numbers.min 2. Мы фактически строим из одного массива другой, какой метод-итератор для этого есть в Руби?
map
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment