SóProvas


ID
2047870
Banca
FUNRIO
Órgão
IF-PA
Ano
2016
Provas
Disciplina
Programação
Assuntos

Considere o seguinte programa escrito em Java:

public class Dimensoes {
Dimensoes A[][];
Dimensoes(int tamanho, int progressao)
{
A = new Dimensoes[tamanho][];
int j = 1;
for (int i = 0 ; i<tamanho; i++) A[i]= new Dimensoes[j++*progressao];
}
public static void main(String[] args){
Dimensoes d = new Dimensoes(10,2);
System.out.print(d.A[8].length);
}
}

Ao ser executado, o resultado que o programa gera na tela de comando será

Alternativas
Comentários
  • Pegando o coração da questão:

                //Dimensoes=10; Progressao=2

                  int j = 1;

                 for (int i = 0 ; i<tamanho; i++) A[i]= new Dimensoes[j++*progressao];

                 A[0] = Dimensoes [1*2] -> A[0]=2 // Se fosse ++j, ai sim seria dimensoes=2// Ao sair do looping J=2(É incrementado)

                A[1] = Dimensoes [2*2] -> A[1]=4 //Ao sair do incremento j =3

                A[2] = Dimensoes [3*2] -> A[2]=6 //Ao sair do incremento j =4

                A[3] = Dimensoes [4*2] -> A[3]=8  //Ao sair do incremento j=5

                A[4] = Dimensoes [5*2] -> A[4]=10 //Ao sair do incremento j=6

                A[5] = Dimensoes [6*2] -> A[5]=12 //Ao sair do incremento j=7

                A[6] = Dimensoes [7*2] -> A[6]=14 //Ao sair do incremento j=8

                A[7] = Dimensoes [8*2] -> A[7]=16 //Ao sair do incremento j=9

                A[8] = Dimensoes [9*2] -> A[8]=18 //Ao sair do incremento j=10

                A[9] = Dimensoes [10*2] -> A[9]=20 //Ao sair do incremento j=11

    //Saiu do loop for

     System.out.print(d.A[8].length); // Imprima o A[8] que vale 18

    GABARITO: Letra E