O algoritmo abaixo foi criado com o intuito de inicializar uma matriz de 2 (duas) linhas por 3 (três) colunas.
01 - Algoritmo manipulaMatriz
02 - Var mat: Vetor[1..2, 1..3] de inteiro
03 - i, j: inteiro
04 - Início
05 - i <- 1
06 - j <- 1
07 - Enquanto (i <= 3) faça
08 - Enquanto(j <= 2) faça
09 - mat[i,j] <- i*j
10 - j <- j + 1
11 - Fim_enquanto
12 - Fim_enquanto
13 - Fim
Assim, considere o algoritmo acima para avaliar as afirmações abaixo.
I – Em um dado ponto da execução do algoritmo, o elemento da primeira linha, segunda coluna, terá seu conteúdo valendo 2 (dois).
II – Há um erro semântico na linha 7, pois a matriz possui duas linhas apenas.
III – Da maneira como foi escrito, o algoritmo nunca irá entrar em loop infinito.
Sendo assim, é correto o que se afirma em:
Alternativas
Alternativa 1:
I, apenas.
Alternativa 2:
II, apenas.
Alternativa 3:
III, apenas.
Alternativa 4:
) I e II, apenas.
Alternativa 5:
I, II e III.
Respostas
Resposta:
Alternativa 4 - I e II apenas
Explicação:
I – Em um dado ponto da execução do algoritmo, o elemento da primeira linha, segunda coluna, terá seu conteúdo valendo 2 (dois).
Verdadeira - como cada elemento da matriz recebe o produto de sua linha pela sua coluna, quando o código chegar à primeira linha e segunda coluna, teremos .
II – Há um erro semântico na linha 7, pois a matriz possui duas linhas apenas.
Verdadeira - A variável i serve para percorrer as linhas da matriz. Logo, dentro do laço "Enquanto (i <= 3) faça", as comparações i=1 e i=2 são perfeitamente válidas porque a matriz possui duas linhas mas, a comparação i=3 não faz sentido e, por isso, é um erro semântico.
III – Da maneira como foi escrito, o algoritmo nunca irá entrar em loop infinito.
Falsa - A variável i não está sendo incrementada entre as linhas 11 e 12 e, portanto, o algoritmo entrará em loop infinito, pois nunca sairá do processamento da primeira linha da matriz.