programa { funcao inicio ( ) { inteiro x, y, z x=3 y=5 z=2 escreva ( x * y - 4 * z * z *z ) } } Assinale a opção que apresenta resultado do programa precedente.
- A)−17
Correta, porque 3 * 5 - 4 * 2 * 2 * 2 resulta em 15 - 32 = -17.
- B)−15
Incorreta, pois -15 seria o resultado de ignorar a segunda parte da expressao ou errar a ordem das operacoes.
- C)12
Incorreta, porque 12 nao aparece em nenhuma etapa correta do calculo.
- D)15
Incorreta, pois 15 e apenas o valor de x * y, antes de subtrair 4 * z * z * z.
- E)17
Incorreta, porque 17 seria o resultado apenas se a segunda parte fosse subtraida de forma errada ou com sinal trocado.
Gabarito: A
Aqui a ideia é simples: o programa atribui valores a tres variaveis e depois calcula uma expressao aritmetica. Em algoritmos, voce deve respeitar a ordem das operacoes: multiplicacoes antes da subtracao. Como nao ha parenteses para mudar essa ordem, primeiro calcula-se x * y e depois 4 * z * z * z. Substituindo os valores, temos x = 3, y = 5 e z = 2. Entao, x * y = 3 * 5 = 15. Ja a parte 4 * z * z * z vira 4 * 2 * 2 * 2 = 32. Agora e so fazer a conta final: 15 - 32 = -17. Ou seja, o programa escreve -17. Esse tipo de questao e bem classica em prova de algoritmos da CEBRASPE: a banca adora verificar se voce sabe ler expressao matematica e aplicar precedencia de operadores sem se confundir com a ordem em que as variaveis foram declaradas. Resumo mental rapido: atribuiu, substituiu, calculou. Se voce tentar fazer a subtracao antes ou esquecer que multiplicacao vem primeiro, cai na pegadinha.