Menu
Coddy logo textTech

Metody zakresów

Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 7 z 56.

Zakresy mają przydatne metody, dzięki którym nie musisz ręcznie pisać pętli.

include? sprawdza, czy wartość mieści się w zakresie:

range = 1..10
puts range.include?(5)   # true
puts range.include?(11)  # false

min, max i size działają bezpośrednio na zakresach:

puts (1..10).min   # 1
puts (1..10).max   # 10
puts (1..10).size  # 10

step iteruje po zakresie, przeskakując o stałą wartość — przydatne, gdy nie chcesz uwzględniać każdej wartości:

(0..10).step(2) do |n|
  puts n
end
# 0, 2, 4, 6, 8, 10

A each działa tak samo jak w przypadku tablic:

(1..3).each { |n| puts n * n }
# 1
# 4
# 9
challenge icon

Wyzwanie

Łatwy

Otrzymujesz zakres domknięty i listę typowanych liczb. Oceń typy i podsumuj zakres.

Wczytaj dwa wiersze:

  1. Dwie liczby całkowite oddzielone spacją: start i end_value
  2. Lista typowanych liczb całkowitych oddzielonych przecinkami

Używając zakresu start..end_value, wypisz:

  1. Hit: <n>, gdzie n to liczba typów mieszczących się w zakresie (użyj include?)
  2. Span: <n>, gdzie n to size zakresu
  3. Multiples of 3 sum: <n>, gdzie n to suma wszystkich wielokrotności 3 w zakresie (użyj step, zaczynając od pierwszej wielokrotności 3 równej lub większej niż start)

Dla danych wejściowych 1 10 w pierwszym wierszu i 3,5,11,7,-2 w drugim, wynik to:

Hit: 3
Span: 10
Multiples of 3 sum: 18

(Trafienia: 3, 5, 7. Wielokrotności 3 w zakresie 1..10: 3+6+9 = 18.)

Spróbuj swoich sił

start, end_value = gets.chomp.split.map(&:to_i)
guesses = gets.chomp.split(",").map(&:to_i)

# TODO: Liczba trafień za pomocą include?, rozpiętość za pomocą size, suma wielokrotności 3 za pomocą step
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Ruby online