Menu
Coddy logo textTech

Операторы массивов

Часть раздела Основы путешествия по Ruby на Coddy — урок 71 из 88.

Ruby предоставляет специальные операторы, которые позволяют объединять, сравнивать и манипулировать массивами эффективными способами. Эти операторы упрощают работу с несколькими массивами одновременно.

Оператор + объединяет два массива в один новый:

a = [1, 2, 3]
b = [4, 5, 6]
combined = a + b

puts combined  # Выводит: 1, 2, 3, 4, 5, 6

Оператор - удаляет из первого массива элементы, которые присутствуют во втором:

all_numbers = [1, 2, 3, 4, 5]
to_remove = [2, 4]
result = all_numbers - to_remove

puts result  # Выводит: 1, 3, 5

Оператор & возвращает элементы, общие для обоих массивов (пересечение):

a = [1, 2, 3, 4]
b = [3, 4, 5, 6]
common = a & b

puts common  # Выводит: 3, 4

Оператор | объединяет массивы и удаляет дубликаты (объединение):

a = [1, 2, 3]
b = [3, 4, 5]
union = a | b

puts union  # Выводит: 1, 2, 3, 4, 5

Все эти операторы создают новые массивы и оставляют исходные массивы без изменений.

challenge icon

Задание

Легко

Прочитайте две строки ввода, каждая из которых содержит целые числа, разделенные запятыми:

  1. Первый массив (например, 1,2,3,4,5)
  2. Второй массив (например, 3,4,5,6,7)

Выполните следующие операции и выведите результаты, каждый в отдельной строке:

  1. Выведите каждый элемент конкатенации обоих массивов (используя +)
  2. Выведите --- в качестве разделителя
  3. Выведите каждый элемент разности (первый массив минус второй, используя -)
  4. Выведите --- в качестве разделителя
  5. Выведите каждый элемент пересечения (общие элементы, используя &)
  6. Выведите --- в качестве разделителя
  7. Выведите каждый элемент объединения (объединенные элементы без дубликатов, используя |)

Например, если входные данные 1,2,3,4,5 и 3,4,5,6,7, вывод должен быть следующим:

1
2
3
4
5
3
4
5
6
7
---
1
2
---
3
4
5
---
1
2
3
4
5
6
7

Если входные данные 10,20,30 и 30,40,50, вывод должен быть следующим:

10
20
30
30
40
50
---
10
20
---
30
---
10
20
30
40
50

Если входные данные 5,10,15 и 1,2,3, вывод должен быть следующим:

5
10
15
1
2
3
---
5
10
15
---
---
5
10
15
1
2
3

Шпаргалка

Ruby предоставляет специальные операторы для объединения, сравнения и манипулирования массивами:

Оператор + объединяет два массива:

a = [1, 2, 3]
b = [4, 5, 6]
combined = a + b  # [1, 2, 3, 4, 5, 6]

Оператор - удаляет из первого массива элементы, которые присутствуют во втором:

all_numbers = [1, 2, 3, 4, 5]
to_remove = [2, 4]
result = all_numbers - to_remove  # [1, 3, 5]

Оператор & возвращает пересечение (общие элементы):

a = [1, 2, 3, 4]
b = [3, 4, 5, 6]
common = a & b  # [3, 4]

Оператор | возвращает объединение (комбинация без дубликатов):

a = [1, 2, 3]
b = [3, 4, 5]
union = a | b  # [1, 2, 3, 4, 5]

Все эти операторы создают новые массивы и оставляют исходные массивы без изменений.

Попробуйте сами

# Чтение входных массивов
input1 = gets.chomp.split(',').map(&:to_i)
input2 = gets.chomp.split(',').map(&:to_i)

# TODO: Напишите свой код ниже
# Выполните следующие операции:
# 1. Конкатенация с использованием +
# 2. Разность с использованием -
# 3. Пересечение с использованием &
# 4. Объединение с использованием |
# Выведите каждый результат, используя "---" в качестве разделителя между операциями
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы