Pular para o conteúdo principal

Questão de Sistemas Operacionais — Terminal Services — FGV 2024

Sistemas OperacionaisTerminal Services
Código
fg075006
Banca
FGV
Órgão
AL-PR
Ano
2024
Nível
Superior
Cargo
Analista Legislativo - Analista de Redes
Seja o seguinte arquivo shell script gerado para uma máquina LinuxImagem associada para resolução da questãoSe o valor de X for 10 , o de Y for 9 e o de Z for 85, então o resultado que irá aparecer será
  1. A0.
  2. B19.
  3. C85.
  4. D90.
  5. E100.
Revelar gabarito e comentário

GabaritoA — 0.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Resolução

Gabarito: letra A — a conta chega a 0 — alternativa A.

A ideia por trás

Um shell script é um arquivo de texto com comandos que o interpretador de comandos do Linux (bash) executa em sequência. Ele permite automatizar tarefas usando variáveis, estruturas de controle e expressões aritméticas. A expansão aritmética $(( ... )) é um recurso do bash que calcula uma expressão numérica e devolve o resultado como texto.

Dentro de $(( ... )) podemos usar operadores aritméticos (+, -, *, /, %) e de comparação (>, <, ==, etc.). O operador ternário ? : é uma forma compacta de escrever um if-else: 'condição ? valor_se_verdadeiro : valor_se_falso'. Se a condição for verdadeira, o resultado é o primeiro valor; se for falsa, o segundo. A comparação > retorna 1 (verdadeiro) se o lado esquerdo for maior que o direito, e 0 (falso) caso contrário.

Esta questão cobra exatamente a avaliação de uma expressão aritmética com operador ternário: precisamos substituir os valores das variáveis, calcular a soma, comparar com Z e escolher o ramo correto do ternário.

O que a questão dá

  • X = 10

  • Y = 9

  • Z = 85

  • script: resultado = $(( (X + Y) > Z ? 0 : 1 ))

O que queremos: o valor que o script imprime na tela

Passo 1 — Calcular a soma de X e Y

A expressão dentro do $(( ... )) começa com (X + Y), então precisamos saber quanto vale essa soma antes de comparar com Z.

Por que esta fórmula: É uma adição simples: X + Y.

S=X+YS = X + Y

De onde vem cada valor: XX = enunciado: 10 · YY = enunciado: 9

S=10+9=19S = 10 + 9 = \boxed{19}
NÃO CAIA NESSA!

Nenhum erro comum neste passo, mas é importante não confundir a ordem dos operandos.

Passo 2 — Comparar a soma com Z

O operador ternário precisa de uma condição para decidir qual valor retornar. A condição é (X + Y) > Z, então comparamos a soma obtida no passo 1 com Z.

Por que esta fórmula: O operador > é uma comparação: retorna 1 se o lado esquerdo for maior que o direito, e 0 caso contrário.

C=(S>Z)C = (S > Z)

De onde vem cada valor: SS = passo 1: 19 · ZZ = enunciado: 85

C=(19>85)=0 (falso)C = (19 > 85) = \boxed{0\ (\text{falso})}
NÃO CAIA NESSA!

Achar que 19 > 85 é verdadeiro, ou inverter o sinal da comparação.

Passo 3 — Escolher o valor do ternário

Com a condição avaliada, o operador ternário seleciona um dos dois valores: se a condição for verdadeira, retorna o primeiro; se falsa, o segundo. Como a condição é falsa, o resultado é o valor após os dois pontos.

Por que esta fórmula: A sintaxe do ternário é 'condição ? valor1 : valor2'. Aqui, valor1 = 0 e valor2 = 1.

resultado=C?0:1resultado = C ? 0 : 1

De onde vem cada valor: CC = passo 2: 0 (falso) · 00 = constante: 0 · 11 = constante: 1

resultado=0?0:1=0resultado = 0 ? 0 : 1 = \boxed{0}
NÃO CAIA NESSA!

Confundir a ordem: pensar que condição falsa retorna o primeiro valor. A regra é: verdadeiro → primeiro, falso → segundo.

Resposta: 0 — alternativa A

Link permanente: /questoes/fg075006