51 lines
1.0 KiB
Markdown
51 lines
1.0 KiB
Markdown
---
|
|
status: seed
|
|
type: concept
|
|
tags: []
|
|
created: 2025-12-17
|
|
updated: 2026-05-26
|
|
aliases:
|
|
- Итераторы для обработки массивов Ruby
|
|
---
|
|
# Итераторы для обработки массивов Ruby
|
|
```ruby
|
|
ary.each { |item| block }
|
|
|
|
ary.each_index { |index| block }
|
|
```
|
|
![[Pasted image 20260526203807.png|400]]
|
|
![[Pasted image 20260526203848.png|400]]
|
|
|
|
## Практика
|
|
|
|
> Найти максимальный и минимальный элементы, введенного пользователем массива, а также их индексы
|
|
|
|
```ruby
|
|
a = gets.chomp.split.map { |i| i.to_i }
|
|
p a
|
|
max = min = a[0]
|
|
maxi = mini = 0
|
|
for i in 1 ... a.size
|
|
if a[i] > max
|
|
max = a[i]
|
|
maxi = i
|
|
end
|
|
if a[i] < min
|
|
min = a[i]
|
|
mini = i
|
|
end
|
|
end
|
|
puts "Максимальное число: #{max}, индекс: #{maxi}"
|
|
puts "Минимальное число: #{min}, индекс: #{mini}"
|
|
```
|
|
|
|
```ruby
|
|
a = get.chomp.split.map { |i| i.to_i }
|
|
p a
|
|
max = a.max
|
|
min = a.min
|
|
maxi = a.index(max)
|
|
mini = a.index(min)
|
|
```
|
|
|