Questão 2 ( 3,5 pontos): matriz (em algoritmo pseudocódigo)
É pra fazer uma matriz quadrada de números inteiros que comporte até 500 linhas e 500 colunas. Então tem que ler a dimensão dela. Depois, é necessário ler todos os elementos desta matriz. E então foram pedidas algumas coisas: A média dos elementos positivos da diagonal principal;
Com a diagonal secundária, achar o maior elemento. Mostrar a posição deste número e o valor; Abaixo da diagonal principal, achar os números ímpares e imprimir a soma;
Por fim, imprimir a matriz.
É pra fazer uma matriz quadrada de números inteiros que comporte até 500 linhas e 500 colunas. Então tem que ler a dimensão dela. Depois, é necessário ler todos os elementos desta matriz. E então foram pedidas algumas coisas: A média dos elementos positivos da diagonal principal;
Com a diagonal secundária, achar o maior elemento. Mostrar a posição deste número e o valor; Abaixo da diagonal principal, achar os números ímpares e imprimir a soma;
Por fim, imprimir a matriz.
Passo 1
O enunciado pede um algoritmo em pseudocódigo para uma matriz quadrada de dimensão até
. Precisamos:
– ler a dimensão ;
– ler todos os elementos ;
– calcular a média dos elementos positivos da diagonal principal;
– identificar o maior elemento na diagonal secundária, mostrando seu valor e posição;
– somar os números ímpares abaixo da diagonal principal;
– por fim, imprimir a matriz.
– ler a dimensão
– ler todos os elementos
– calcular a média dos elementos positivos da diagonal principal;
– identificar o maior elemento na diagonal secundária, mostrando seu valor e posição;
– somar os números ímpares abaixo da diagonal principal;
– por fim, imprimir a matriz.
Passo 2
Leitura da dimensão e dos elementos da matriz:
Read \(n\) \n
For \(i = 1\) To \(n\) Do \n
For \(j = 1\) To \(n\) Do \n
Read \(A[i][j]\) \n
End For \n
End For
Passo 3
Cálculo da média dos positivos na diagonal principal:
\(soma\_dp \leftarrow 0\) \n
\(cont\_dp \leftarrow 0\) \n
For \(i = 1\) To \(n\) Do \n
If \(A[i][i] > 0\) Then \n
\(soma\_dp \leftarrow soma\_dp + A[i][i]\) \n
\(cont\_dp \leftarrow cont\_dp + 1\) \n
End If \n
End For \n
If \(cont\_dp > 0\) Then \n
\(media\_dp \leftarrow soma\_dp / cont\_dp\) \n
Else \n
\(media\_dp \leftarrow 0\) \n
End If
Passo 4
Determinar o maior na diagonal secundária e sua posição:
\(i \leftarrow 1\) \n
\(j \leftarrow n\) \n
\(max\_ds \leftarrow A[i][j]\) \n
\(pos\_i \leftarrow i\) \n
\(pos\_j \leftarrow j\) \n
For \(k = 1\) To \(n\) Do \n
\(i \leftarrow k\) \n
\(j \leftarrow n - k + 1\) \n
If \(A[i][j] > max\_ds\) Then \n
\(max\_ds \leftarrow A[i][j]\) \n
\(pos\_i \leftarrow i\) \n
\(pos\_j \leftarrow j\) \n
End If \n
End For
Passo 5
Somar ímpares abaixo da diagonal principal (
):
\(soma\_ib \leftarrow 0\) \n
For \(i = 1\) To \(n\) Do \n
For \(j = 1\) To \(i - 1\) Do \n
If \(\bigl(A[i][j] \bmod 2\neq 0\bigr)\) Then \n
\(soma\_ib \leftarrow soma\_ib + A[i][j]\) \n
End If \n
End For \n
End For
Passo 6
Impressão dos resultados e da matriz:
Print "Média dos positivos na diagonal principal: ", media\_dp \n
Print "Maior na diagonal secundária: ", max\_ds \n
Print "Posição (linha, coluna): (", pos\_i, ", ", pos\_j, ")" \n
Print "Soma dos ímpares abaixo da diagonal principal: ", soma\_ib \n
For \(i = 1\) To \(n\) Do \n
For \(j = 1\) To \(n\) Do \n
Print \(A[i][j]\), " " \n
End For \n
Print "\n" \n
End For
Resposta
Read \(n\) \n
For \(i = 1\) To \(n\) Do \n
For \(j = 1\) To \(n\) Do \n
Read \(A[i][j]\) \n
End For \n
End For \n
\(soma\_dp \leftarrow 0\) \n
\(cont\_dp \leftarrow 0\) \n
For \(i = 1\) To \(n\) Do \n
If \(A[i][i] > 0\) Then \n
\(soma\_dp \leftarrow soma\_dp + A[i][i]\) \n
\(cont\_dp \leftarrow cont\_dp + 1\) \n
End If \n
End For \n
If \(cont\_dp > 0\) Then \n
\(media\_dp \leftarrow soma\_dp / cont\_dp\) \n
Else \n
\(media\_dp \leftarrow 0\) \n
End If \n
\(i \leftarrow 1\) \n
\(j \leftarrow n\) \n
\(max\_ds \leftarrow A[i][j]\) \n
\(pos\_i \leftarrow i\) \n
\(pos\_j \leftarrow j\) \n
For \(k = 1\) To \(n\) Do \n
\(i \leftarrow k\) \n
\(j \leftarrow n - k + 1\) \n
If \(A[i][j] > max\_ds\) Then \n
\(max\_ds \leftarrow A[i][j]\) \n
\(pos\_i \leftarrow i\) \n
\(pos\_j \leftarrow j\) \n
End If \n
End For \n
\(soma\_ib \leftarrow 0\) \n
For \(i = 1\) To \(n\) Do \n
For \(j = 1\) To \(i - 1\) Do \n
If \(\bigl(A[i][j] \bmod 2\neq 0\bigr)\) Then \n
\(soma\_ib \leftarrow soma\_ib + A[i][j]\) \n
End If \n
End For \n
End For \n
Print "Média dos positivos na diagonal principal: ", media\_dp \n
Print "Maior na diagonal secundária: ", max\_ds \n
Print "Posição (linha, coluna): (", pos\_i, ", ", pos\_j, ")" \n
Print "Soma dos ímpares abaixo da diagonal principal: ", soma\_ib \n
For \(i = 1\) To \(n\) Do \n
For \(j = 1\) To \(n\) Do \n
Print \(A[i][j]\), " " \n
End For \n
Print "\n" \n
End For