Faça um programa que carregue uma matriz
, calcule e mostre:
- o maior elemento da matriz e sua respectiva posição, ou seja, linha e coluna;
- o menor elemento da matriz e sua respectiva posição, ou seja, linha e coluna.
Passo 1
Beleza! O enunciado pede que a gente faça um programa que receba uma matriz de dimensão
e mostre:
- o maior elemento dessa matriz e em que linha e coluna ele está;
- o menor elemento dessa matriz e em que linha e coluna ele está.
Conteúdo envolvido:
- Matrizes (arrays bidimensionais)
- Laços de repetição (loops) para percorrer linhas e colunas
- Condicionais (if) para comparar e atualizar o maior e o menor valor
Para resolver, a gente vai precisar saber como:
- Ler ou receber cada elemento
de uma matriz . - Inicializar variáveis para guardar o maior e o menor valor, junto com suas posições.
- Percorrer toda a matriz e em cada passo comparar e atualizar essas variáveis.
Passo 2
Teoria envolvida (explicando sem pular etapas):
- Matriz
: um conjunto de 6 linhas e 3 colunas. Cada elemento é referenciado por um par de índices , onde varia de 1 a 6 e de 1 a 3. - Para encontrar o maior e o menor elemento, a técnica é:
a) Inicializar nosso “maior” e “menor” com o primeiro elemento da matriz, digamos.
b) Percorrer todos os elementos com loops duplos (um para linhas, outro para colunas).
c) Em cada elemento, usarif
para comparar e, caso encontremos algo maior do que o nosso “maior” atual, atualizar; idem para o “menor”. - No fim, teremos guardado tanto os valores quanto as posições onde eles apareceram.
Passo 3
Primeiro, vamos “carregar” (ou ler) a matriz. Em pseudocódigo, seria algo assim:
para i de 1 até 6 faça
para j de 1 até 3 faça
leia A[i][j] // aqui o usuário informa o valor de A[i][j]
fim para
fim para
Passo 4
Agora vamos inicializar as variáveis de controle usando o primeiro elemento
:
maior ← A[1][1]
iMaior ← 1
jMaior ← 1
menor ← A[1][1]
iMenor ← 1
jMenor ← 1
Passo 5
Com tudo inicializado, basta percorrer a matriz inteira e comparar:
para i de 1 até 6 faça
para j de 1 até 3 faça
se A[i][j] > maior então
maior ← A[i][j]
iMaior ← i
jMaior ← j
fim se
se A[i][j] < menor então
menor ← A[i][j]
iMenor ← i
jMenor ← j
fim se
fim para
fim para
Passo 6
No final, a gente exibe o resultado armazenado em
maior
, iMaior
, jMaior
e em menor
, iMenor
, jMenor
:imprima "Maior elemento = ", maior, " na linha ", iMaior, " e coluna ", jMaior
imprima "Menor elemento = ", menor, " na linha ", iMenor, " e coluna ", jMenor
Resposta
Um pseudocódigo completo ficaria assim:
para i de 1 até 6 faça
para j de 1 até 3 faça
leia A[i][j]
fim para
fim para
maior ← A[1][1]
iMaior ← 1
jMaior ← 1
menor ← A[1][1]
iMenor ← 1
jMenor ← 1
para i de 1 até 6 faça
para j de 1 até 3 faça
se A[i][j] > maior então
maior ← A[i][j]
iMaior ← i
jMaior ← j
fim se
se A[i][j] < menor então
menor ← A[i][j]
iMenor ← i
jMenor ← j
fim se
fim para
fim para
imprima "Maior elemento = ", maior, " na linha ", iMaior, " e coluna ", jMaior
imprima "Menor elemento = ", menor, " na linha ", iMenor, " e coluna ", jMenor