Se a instrução System.out.print(f(v, 3, 2, d)); for alterada...

Próximas questões
Com base no mesmo assunto
Q566694 Programação
Atenção: Para responder à questão, considere o programa Java abaixo.

Se a instrução System.out.print(f(v, 3, 2, d)); for alterada para System.out.print(f(v, 2, 3, d)); e para a variável d for fornecido o valor 51, quando o programa for executado
Alternativas

Comentários

Veja os comentários dos nossos alunos

Observe que a assinatura da função f(int[][] valores, int n, int m, int x) ocorre o seguinte:


- N: primeira dimensão, consistindo a todos os elementos existentes.

- M: segunda dimensão, correspondendo então a cada elemento (array) existente na matriz.


Note que cada elemento tem tamanho 3 e, em java, o índice de um array abrange um intervalo entre 0 e N-1. Com isso, o limite de cada elemento é 0 até 2. Ao passar 3 para a variável M, ocorrerá a exceção ArrayIndexOutOfBoundsException (exceção de array fora do índice).


Espero ter ajudado!


Bons estudos!

A função percorre o vetor bi-dimencional valores que pode ser representando com sendo esta matriz

|   1  10    8 |

| 15  40  16 |

| 10  33  91 |

|   0  44  51 |

De 4 linhas e 3 colunas, O valores informados para n e m representam, respectivamente, a quantidade de linhas e colunas que serão percorridos dentro de dois loops for.
A primeira chamada f(v, 3, 2, d) não ocorre nenhum erro o valor de n é 3(4 linhas que variam no loop de 0 até 3) e m é 2(3 colunas que variam no loop de 0 até 2).
A segunda chamada f(v, 2, 3, d) irá causar o erro ArrayIndexOutOfBoundsException, porque o código terará acessar uma quarta coluna que não existe.

Pegadinha baseada em código porco.

Se reparar bem o método f ao invés de receber a quantidade de linhas e colunas em n e m, recebe o maior índíce possível, que na maioria das linguagens, incluindo o Java, é n-1.

 

int[][] v = {{1, 10, 8}, {15, 40, 16}, {10, 33, 91}, {0, 44, 51}};

v, 3, 2, d - v tem 1 linha, 4 colunas e cada coluna de v tem 3 colunas;

v, 2, 3, d - v tem 1 linha, 3 colunas e cada coluna tem de v 4 colunas; (out of bounds) pois não existe a quarta coluna a tabela teria que ser assim:  int[][] v = {{1, 10, 8, 9}, {15, 40, 16, 9}, {10, 33, 91, 9}};

 

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo