Skip to content

Instantly share code, notes, and snippets.

View mikalai-yankouski's full-sized avatar
🍀
gl

Mikalay mikalai-yankouski

🍀
gl
View GitHub Profile
@mikalai-yankouski
mikalai-yankouski / football.rb
Last active November 22, 2018 20:12
В одном массиве записано количество мячей, забитых футбольной командой в каждой из 20 игр, в другом - количество пропущенных мячей в этой же игре. Для каждой игры определите словесный результат игры (выигрыш, проигрыш или ничью).
def random_numbers(n, range)
Array.new(n) { rand(range) }
end
goals_scored = random_numbers(20, 1..6)
goals_missed = random_numbers(20, 1..6)
goals_scored.length.times do |i|
result = goals_scored[i] - goals_missed[i]
if result.positive?
@mikalai-yankouski
mikalai-yankouski / students.rb
Last active November 22, 2018 20:58
В одном массиве записан рост некоторых студентов, а в другом (с тем же числом элементов) - их фамилии в том же порядке, в котором указан рост. Известно, что все студенты разного роста. Напечатайте фамилию самого высокого студента.
require 'faker'
def random_names(n)
Array.new(n) { Faker::Name.unique.name }
end
students = random_names(10)
height_of_students = (150..200).to_a.sample(10)
highest_i = height_of_students.index(height_of_students.max)
@mikalai-yankouski
mikalai-yankouski / positive_minimal.rb
Last active November 27, 2018 13:13
Дан целочисленный массив. Заменить все положительные элементы на значение минимального.
def random_numbers(n, range)
Array.new(n) { rand(range) }
end
random_array = random_numbers(20, -100..100)
min_positive = random_array.select(&:positive?).min
array_with_min_positive = random_array.map {|i| i>0 ? min_positive : i}
puts "Array: #{random_array.inspect}"
puts "Min positive number is #{min_positive}"
@mikalai-yankouski
mikalai-yankouski / cyclic_shift.rb
Last active November 27, 2018 13:12
Дан целочисленный массив. Осуществить циклический сдвиг элементов массива влево на одну позицию
def random_numbers(n, range)
Array.new(n) { rand(range) }
end
random_array = random_numbers(10, 1..100)
cyclic_shift = random_array.rotate
puts "Array: #{random_array.inspect}"
puts "New Array: #{cyclic_shift}"
@mikalai-yankouski
mikalai-yankouski / zero_element.rb
Last active November 27, 2018 13:12
Дан целочисленный массив. Преобразовать его, вставив перед каждым положительным элементом нулевой элемент.
def random_numbers(n, range)
Array.new(n) { rand(range) }
end
random_array = random_numbers(20, -100..100)
array_with_zero = []
#random_array.map { |n| n.positive? ? array_with_zero << 0 << n : array_with_zero << n }
random_array.each do |number|
if number.positive?
@mikalai-yankouski
mikalai-yankouski / sorted_list.rb
Last active November 27, 2018 13:01
Дан целочисленный массив. Упорядочить его по возрастанию.
def random_numbers(n, range)
Array.new(n) { rand(range) }
end
random_array = random_numbers(20, -100..100)
puts "Array: #{random_array.inspect}"
puts "New Array: #{random_array.sort}" #{|x,y| x <=> y } optional
@mikalai-yankouski
mikalai-yankouski / sorted_word_in_string.rb
Last active November 27, 2018 13:00
Дана строка в которой записаны слова через пробел. Необходимо упорядочить слова по количеству букв в каждом слове.
require 'faker'
random_string = Faker::Lorem.words(10).join(" ") #Faker возвращает array, поэтому join в строку
sorted_string = random_string.split.sort {|x,y| x.length <=> y.length}
puts "String: #{random_string.inspect}"
puts "Sorted string: #{sorted_string}"
@mikalai-yankouski
mikalai-yankouski / count_words.rb
Last active November 27, 2018 13:00
Дана строка в которой записаны слова через пробел. Необходимо посчитать количество слов.
random_string = Faker::Lorem.words(10).join(" ")
words = random_string.split.count
puts "String: #{random_string.inspect}"
puts "Words in string: #{words}"
@mikalai-yankouski
mikalai-yankouski / polindrome.rb
Last active November 27, 2018 12:59
Дана строка. Необходимо проверить, является ли она палиндромом.
loop do
puts "Enter the word you want to check for palindrom words ('example' for example, 'exit' for quite)"
word = gets.chomp.downcase.strip
break if word == "exit"
if word == "example"
puts "Word '#{word}' is not a palindrome. Because '#{word}' not equal '#{word.reverse}'"
puts "Word 'deified' is a palindrome! Because word 'deified' equally read backwards\n"
elsif word == word.reverse
@mikalai-yankouski
mikalai-yankouski / football_oop.rb
Last active November 27, 2018 17:11
В парадигме ООП: В одном массиве записано количество мячей, забитых футбольной командой в каждой из 20 игр, в другом - количество пропущенных мячей в этой же игре. Для каждой игры определите словесный результат игры (выигрыш, проигрыш или ничью)
# Задача №1
# В одном массиве записано количество мячей, забитых футбольной командой в каждой из 20 игр,
# в другом - количество пропущенных мячей в этой же игре.
# Для каждой игры определите словесный результат игры (выигрыш, проигрыш или ничью)
class Game
attr_accessor :scored, :missed, :result
def match_result
@result = case @scored <=> @missed