Considere a classe Java OperacoesVetores demonstrada a segui...

Próximas questões
Com base no mesmo assunto
Q2755992 Arquitetura de Software

Considere a classe Java OperacoesVetores demonstrada a seguir.


public class OperacoesVetores {

public static void main(String[] args) {

int[] v1 = new int[]{9,3,6,4,};

int[] v2 = new int[]{3,5,7,2,2,5};

int r1 = operacao (v1, v2);

}


public static int operacao1(int[] vetorA, int[] vetor B) {

int tam;

tam = vetorA.length < vetorB. length ? vetorA.length : vetorB.length;


int som = 0;

int i = 0;

while (i<tam) {

som += vetorA[i] + vetorB[i];

i++;

}


int[] vetorTemp;

vetorTemp = vetorA.length == tam ? vetorB : vetorA;

int mult = 0;

for (int j = i ; j< vetorTemp.length; j++) {

mult += vetorTemp[j];

}

return som * mult;

}

}

Ao final de sua execução, o valor da variável r1 será:

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C - 273

Vamos entender por que a alternativa correta é a alternativa C, e por que as outras alternativas estão incorretas.

A questão envolve a análise de uma classe Java chamada OperacoesVetores. Para resolver a questão, é necessário compreender a lógica do método operacao1, que realiza operações em dois vetores de inteiros.

Primeiramente, vamos analisar o método operacao1:

1. Cálculo do tamanho mínimo:

tam = vetorA.length < vetorB.length ? vetorA.length : vetorB.length;

Esta linha define o tamanho mínimo entre os dois vetores. No caso de v1 (tamanho 4) e v2 (tamanho 6), o valor de tam será 4.

2. Soma dos elementos até o tamanho mínimo:

while (i < tam) { som += vetorA[i] + vetorB[i]; i++; }

Aqui, somamos os elementos correspondentes de v1 e v2 até o tamanho mínimo. Vamos calcular essa soma:

- Índice 0: 9 + 3 = 12

- Índice 1: 3 + 5 = 8

- Índice 2: 6 + 7 = 13

- Índice 3: 4 + 2 = 6

A soma total é 12 + 8 + 13 + 6 = 39.

3. Determinação do vetor temporário:

vetorTemp = vetorA.length == tam ? vetorB : vetorA;

Como vetorA.length é igual ao valor de tam (4), vetorTemp será vetorB.

4. Soma dos elementos restantes do vetor temporário:

for (int j = i; j < vetorTemp.length; j++) { mult += vetorTemp[j]; }

Como i é 4, somamos os elementos a partir do índice 4 de vetorB:

- Índice 4: 2

- Índice 5: 5

A soma total é 2 + 5 = 7.

5. Multiplicação dos resultados:

return som * mult;

Finalmente, multiplicamos as somas obtidas: 39 * 7 = 273.

Portanto, a variável r1 será igual a 273, tornando a alternativa C a correta.

Vamos analisar as alternativas incorretas:

A - 195: Esta alternativa não leva em consideração a lógica de multiplicação correta entre as somas dos elementos dos vetores.

B - 390: Esta alternativa poderia ser um erro de cálculo, onde talvez tenha-se duplicado a soma dos elementos, mas não corresponde ao resultado correto.

D - 78: Esta alternativa é um valor significativamente menor e não representa nenhum passo intermediário correto no cálculo.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo