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.

Passo 1

O enunciado pede um algoritmo em pseudocódigo para uma matriz quadrada de dimensão até 500\times500. Precisamos:
– ler a dimensão n;
– ler todos os elementos A[i][j];
– 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 ( i>j):
\(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

Exercícios relacionados