Operadores de Array
Parte da seção Fundamentos do Journey de Ruby da Coddy — lição 71 de 88.
O Ruby fornece operadores especiais que permitem combinar, comparar e manipular arrays de maneiras poderosas. Esses operadores facilitam o trabalho com múltiplos arrays ao mesmo tempo.
O operador + concatena dois arrays em um novo:
a = [1, 2, 3]
b = [4, 5, 6]
combined = a + b
puts combined # Saída: 1, 2, 3, 4, 5, 6O operador - remove elementos do primeiro array que aparecem no segundo:
all_numbers = [1, 2, 3, 4, 5]
to_remove = [2, 4]
result = all_numbers - to_remove
puts result # Saída: 1, 3, 5O operador & retorna elementos comuns a ambos os arrays (interseção):
a = [1, 2, 3, 4]
b = [3, 4, 5, 6]
common = a & b
puts common # Saída: 3, 4O operador | combina arrays e remove duplicatas (união):
a = [1, 2, 3]
b = [3, 4, 5]
union = a | b
puts union # Saída: 1, 2, 3, 4, 5Todos esses operadores criam novos arrays e deixam os arrays originais inalterados.
Desafio
FácilLeia duas linhas de entrada, cada uma contendo inteiros separados por vírgula:
- O primeiro array (ex:
1,2,3,4,5) - O segundo array (ex:
3,4,5,6,7)
Realize as seguintes operações e imprima os resultados, cada um em sua própria linha:
- Imprima cada elemento da concatenação de ambos os arrays (usando
+) - Imprima
---como um separador - Imprima cada elemento da diferença (primeiro array menos o segundo, usando
-) - Imprima
---como um separador - Imprima cada elemento da interseção (elementos comuns, usando
&) - Imprima
---como um separador - Imprima cada elemento da união (combinados sem duplicatas, usando
|)
Por exemplo, se as entradas forem 1,2,3,4,5 e 3,4,5,6,7, a saída deve ser:
1
2
3
4
5
3
4
5
6
7
---
1
2
---
3
4
5
---
1
2
3
4
5
6
7Se as entradas forem 10,20,30 e 30,40,50, a saída deve ser:
10
20
30
30
40
50
---
10
20
---
30
---
10
20
30
40
50Se as entradas forem 5,10,15 e 1,2,3, a saída deve ser:
5
10
15
1
2
3
---
5
10
15
---
---
5
10
15
1
2
3Folha de consulta
Ruby fornece operadores especiais para combinar, comparar e manipular arrays:
O operador + concatena dois arrays:
a = [1, 2, 3]
b = [4, 5, 6]
combined = a + b # [1, 2, 3, 4, 5, 6]O operador - remove elementos do primeiro array que aparecem no segundo:
all_numbers = [1, 2, 3, 4, 5]
to_remove = [2, 4]
result = all_numbers - to_remove # [1, 3, 5]O operador & retorna a interseção (elementos comuns):
a = [1, 2, 3, 4]
b = [3, 4, 5, 6]
common = a & b # [3, 4]O operador | retorna a união (combinados sem duplicatas):
a = [1, 2, 3]
b = [3, 4, 5]
union = a | b # [1, 2, 3, 4, 5]Todos esses operadores criam novos arrays e deixam os arrays originais inalterados.
Experimente você mesmo
# Ler os arrays de entrada
input1 = gets.chomp.split(',').map(&:to_i)
input2 = gets.chomp.split(',').map(&:to_i)
# TODO: Escreva seu código abaixo
# Realize as seguintes operações:
# 1. Concatenação usando +
# 2. Diferença usando -
# 3. Interseção usando &
# 4. União usando |
# Imprima cada resultado com "---" como separador entre as operaçõesEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operadores Lógicos Parte 47Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada do Usuário10FizzBuzz com um Toque Especial
Visão Geral do JogoO Método FizzBuzz13Arrays Avançados
Fatiamento de Arrays com IntervalosFatiamento de Arrays com ÍndicesOperadores de ArrayMétodo Include?2Variáveis e Tipos de Dados
Números e VariáveisTipo de Dado StringTipo de Dado BooleanTipo de Dado SymbolVerificando Tipos de DadosConvenções de NomenclaturaRecapitulação - Criação de Variáveis5Tomada de Decisão
Instrução IfIf - ElseRecapitulação - Calculadora SimplesIf - Else AninhadoInstrução Unless8Laços de Repetição
Loop For com IntervalosLoop WhileBreakNextRecapitulação - FatorialLoop TimesLoop UntilLoops AninhadosRecapitulação - Entrada Dinâmica3Operadores Parte 1
Operadores AritméticosOperador de MóduloAtalhos AritméticosRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com putsSaída com print e pSaída com VariáveisEntrada com getsMétodo chompConversão de TiposRecapitulação - Calculadora de IdadeRecapitulação - Verdadeiro ou Falso9Métodos
Definindo um MétodoParâmetros de MétodoValores de RetornoRecapitulação - Método SigmaRecapitulação - Método de ValidaçãoValores de Parâmetro Padrão15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa