Leia valores inteiros para uma matriz
de dimensões
. Depois dessa leitura calcule e apresente os seguintes dados:
O maior dos valores da matriz;
O maior dos valores da matriz;
Passo 1
O enunciado pede que você leia valores inteiros para uma matriz
de dimensões
e, depois dessa leitura, calcule e apresente o maior dos valores da matriz.
Informações relevantes fornecidas pelo enunciado:
Informações relevantes fornecidas pelo enunciado:
- A matriz chama-se
. - As dimensões são
linhas e colunas. - Os elementos de
são números inteiros, ou seja cada elemento é com e . - A tarefa é determinar o maior elemento entre todos os
.
Passo 2
Ideia básica (explicação simples): percorremos todos os elementos da matriz um por um e mantemos uma variável que guarda, até o momento, o maior valor encontrado. Cada vez que encontramos um elemento maior que o guardado, atualizamos essa variável. No final da varredura essa variável contém o maior valor da matriz.
Passo 3
Por que essa ideia funciona (intuição e justificativa): suponha que, ao começar, a variável
contenha o maior valor entre os elementos já vistos. Quando examinamos um novo elemento
, existem só duas possibilidades:
- se
então continua sendo o maior entre todos os vistos até agora; - se
então é o novo maior entre os vistos, logo devemos fazer .
Como ao final percorremos todos os elementos, nenhuma possibilidade fica de fora — portantoserá o maior elemento da matriz. Essa é uma argumentação por inspeção passo a passo (equivalente a uma prova por indução discreta sobre a contagem de elementos já percorridos).
Passo 4
Procedimento prático passo a passo (que você pode aplicar à mão ou implementar rápido em código):
- Inicialize
com o primeiro elemento lido da matriz: . Explicação: assim você garante que é um valor real da matriz (evita escolher um “sentinela” que pode estar errado para números negativos). - Para cada linha
de até :
para cada colunade até : - Se
já está tratado pela inicialização; caso contrário compare com . - Se
então faça .
- Se
- Ao terminar todas as varreduras
contém o maior valor.
Observação prática: ao ler os valores, se preferir você pode fazer a inicialização no momento em que ler o primeiro número e, a partir da segunda leitura, aplicar as comparações.
Passo 5
Detalhamento das operações elementares (para você entender o que fará na prova sem calculadora):
- Comparação: verificar se
é uma única operação de comparação entre inteiros — é rápida e direta. - Atribuição: atualizar
é copiar um valor inteiro para a variável . - Quantidade de comparações: se você inicializa com
e compara todos os outros elementos, fará exatamente comparações. Isso é útil para estimar esforço em prova ou em implementação.
Passo 6
Exemplo concreto (mostrado passo a passo) para fixar a ideia. Suponha uma matriz
:
Aplicando o procedimento:
- Inicializo
. - Vergemos
. Como , mantenho . - Vergemos
. Como , atualizo . - Vergemos
. Como , mantenho . - Vergemos
. Como , mantenho . - Vergemos
. Mantém . - Vergemos
. Mantém . - Vergemos
. Mantém . - Vergemos
. Mantém .
Ao final , que é realmente o maior valor da matriz (há repetição de , tudo bem — queremos o maior valor em si).]
Passo 7
Casos especiais e dicas:
- Se
e então o maior é simplesmente . - Se todos os elementos forem iguais, o algoritmo continuará correto e retornará esse valor.
- Se existirem números negativos, a inicialização
evita problemas — não use como inicialização se não tiver certeza de que os elementos não são todos negativos. - Em prova escreva claramente a inicialização e a regra de atualização para não perder pontos: mostre
e depois a condição "se então ".
Passo 8
Resumo rápido para implementar em poucas linhas (escreva na prova como algoritmo em pseudo‑código):
Essa é a forma que você deve expor em prova: clara, completa e fácil de justificar.