Geração de Sequências (seq, :)
Parte da seção Fundamentos do Journey de R da Coddy — lição 43 de 78.
Você tem usado 1:5 para criar sequências em seus loops. Este operador de dois pontos é rápido e simples, mas o R também fornece a função seq() para mais controle sobre suas sequências.
O operador de dois pontos cria uma sequência de inteiros consecutivos:
print(1:5)
print(10:6)Saída:
[1] 1 2 3 4 5
[1] 10 9 8 7 6Observe que a sequência pode seguir em qualquer direção. Quando o primeiro número é maior, ela faz a contagem regressiva.
A função seq() oferece mais flexibilidade. Você pode especificar um tamanho de passo usando o argumento by:
print(seq(2, 10, by = 2))Saída:
[1] 2 4 6 8 10Isso cria números pares de 2 a 10.
Você também pode especificar quantos números deseja usando length.out:
print(seq(1, 10, length.out = 4))Saída:
[1] 1 4 7 10O R calcula automaticamente o espaçamento para fornecer exatamente 4 números uniformemente espaçados. Ambas as abordagens funcionam perfeitamente em loops, permitindo que você itere por sequências personalizadas com facilidade.
Desafio
FácilLeia três números da entrada: start, end e step.
Use a função seq() para gerar uma sequência de start até end com o tamanho de step fornecido. Em seguida, use um loop for para iterar por esta sequência e imprimir o quadrado de cada número.
Cada valor ao quadrado deve ser impresso em sua própria linha usando print().
Por exemplo, se as entradas forem 2, 10 e 2, a saída deve ser:
[1] 4
[1] 16
[1] 36
[1] 64
[1] 100Isso ocorre porque a sequência 2, 4, 6, 8, 10 é gerada, e cada número é elevado ao quadrado.
Folha de consulta
O operador de dois pontos : cria sequências de números inteiros consecutivos:
1:5 # cria 1 2 3 4 5
10:6 # cria 10 9 8 7 6 (contagem regressiva)A função seq() fornece mais controle sobre sequências:
# Especifica o tamanho do passo com 'by'
seq(2, 10, by = 2) # cria 2 4 6 8 10
# Especifica o número de valores com 'length.out'
seq(1, 10, length.out = 4) # cria 1 4 7 10Tanto o operador de dois pontos quanto a função seq() funcionam em loops for:
for (i in seq(2, 10, by = 2)) {
print(i)
}Experimente você mesmo
# Ler entrada
con <- file("stdin", "r")
start <- as.numeric(suppressWarnings(readLines(con, n = 1)))
end <- as.numeric(suppressWarnings(readLines(con, n = 1)))
step <- as.numeric(suppressWarnings(readLines(con, n = 1)))
# TODO: Escreva seu código abaixo
# 1. Use seq() para gerar uma sequência de start até end com o step fornecido
# 2. Use um loop for para iterar através da sequência
# 3. Imprima o quadrado de cada número usando print()Esta 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 (AND, OR)Operadores Lógicos Parte 2 (NOT)Recapitulação - Lógica SimplesLógica Vetorizada Parte 1Lógica Vetorizada Parte 27Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo a Entrada do Usuário10FizzBuzz com um Toque Especial
Visão Geral do JogoA Função FizzBuzz2Variáveis e Tipos de Dados
Tipo de Dado NuméricoTipo de Dado InteiroTipo de Dado CaractereTipo de Dado LógicoVerificando Tipos de DadosConvenções de NomenclaturaValores Ausentes: NARecapitulação - Criação de Variáveis8Laços de Repetição
Laço ForLaço WhileBreakNext (Continue)Recapitulação - FatorialGeração de Sequências (seq, :)Laços AninhadosRecapitulação - Entrada Dinâmica3Operadores Parte 1
Operadores AritméticosDivisão Inteira e MóduloOperadores de AtribuiçãoRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com PrintCat para SaídaSaída com VariáveisLendo Entrada com readline()Básico de Conversão de TiposRecapitulação - Calculadora de IdadeRecapitulação - Verdadeiro ou Falso9Funções
Declarando uma FunçãoArgumentos de FunçãoValores de RetornoRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores de Parâmetro Padrão