Questão nº 51
Questão de Tecnologia da Informação · CESGRANRIO Transpetro PSP-RH-2018.1 (nº 51)
Um usuário fez a seguinte atribuição de valores a uma variável no Windows Powershell:
$numbers = 1,2,3,4,5,6,7,8,9
Para imprimir os números 1 e 9 da sequência atribuída à variável numbers, em qualquer ordem, o usuário deve executar o comando
- A
echo $numbers[1] $numbers[9] - B
echo $numbers[-1] $numbers[-9](alternativa correta) - C
echo $numbers[1][9] - D
echo $numbers[-1][-9] - E
echo $numbers[0][0] $numbers[0][8]
Resposta comentada
Gabarito Alternativa B
No PowerShell, arrays (listas de valores) começam no índice 0. Para acessar elementos a partir do fim da lista, usamos índices negativos: -1 é o último, -2 o penúltimo, e assim por diante. Como a lista tem 9 elementos, $numbers[-1] retorna o 9 e $numbers[-9] retorna o 1.
- (A) Incorreta:
$numbers[1]retorna o segundo elemento (2), e$numbers[9]está fora do intervalo (índices válidos vão de 0 a 8), gerando erro. - (B) Correta:
$numbers[-1]acessa o último elemento (9) e$numbers[-9]acessa o primeiro (1), pois índices negativos contam de trás para frente, começando em -1. - (C) Incorreta:
$numbers[1][9]tenta acessar o índice 9 de um único número (2), o que falha, pois números não são listas. - (D) Incorreta:
$numbers[-1][-9]tenta acessar o índice -9 do número 9, o que também falha, pois números não são listas. - (E) Incorreta:
$numbers[0][0]tenta acessar o índice 0 do número 1 (falha), e$numbers[0][8]tenta acessar o índice 8 do número 1 (falha). A armadilha aqui é pensar que[0][8]pega o 9, mas na verdade o primeiro[0]já retorna o número 1, e o segundo[8]tenta indexar esse número, não a lista original.
Fonte: CESGRANRIO Transpetro PSP-RH-2018.1 Analista de Sistemas Júnior - Infraestrutura. Reproduzida para fins de estudo.