Leia valores inteiros para uma matriz
de dimensões
. Depois dessa leitura calcule e apresente os seguintes dados:
O menor dos valores da matriz;
O menor dos valores da matriz;
Passo 1
O enunciado pede que, depois de ler todos os valores inteiros de uma matriz
de dimensão
, se calcule e apresente o menor dos valores da matriz.
Informações fornecidas:
- A matriz tem dimensões
, (ou seja, linhas e colunas). - Cada entrada da matriz é um número inteiro; vamos denotar a entrada da linha
e coluna por . - A tarefa específica: encontrar e apresentar o menor valor entre todos os
elementos.
O que será entregue no final: o menor elemento da matriz (um único número inteiro).
Passo 2
Escolha do método (sem complicar): vamos usar uma varredura simples por todos os elementos — o método mais direto e confiável em prova. A ideia é manter uma variável que guarda o menor valor encontrado até agora e atualizá‑la sempre que aparecer um elemento menor.
Por que esse método?
- É óbvio e fácil de implementar em papel ou em código.
- Usa memória constante (apenas uma variável extra).
- É rápido: percorre cada elemento exatamente uma vez.
Passo 3
Inicialização correta (dica prática muito importante): ao começar, inicialize a variável que guarda o mínimo com o primeiro elemento lido da matriz, isto é, com
.
Por que fazer assim?
- Evita ter que escolher um “infinito positivo” ou um valor muito grande que possa dar problema com sinais.
- Garante que a variável inicial é um valor real da matriz, então a comparação subsequente é válida para qualquer conjunto de inteiros (positivos, negativos ou zero).
Passo a passo da inicialização:
- Leia
. - Faça
.
Passo 4
A varredura: percorra linha por linha (ou coluna por coluna — tanto faz) e compare cada elemento com
. Sempre que encontrar um elemento menor, atualize
.
Esquema em pseudo‑algoritmo (escrito de forma clara para levar para a prova):
- Leia
e . - Para
até : - Para
até : - Leia
. - Se
e então faça (inicialização). - Senão, se
então faça .
- Leia
- Para
- Ao final,
contém o menor elemento.
Observação prática: na implementação, muitas pessoas primeiro leem o primeiro elemento para inicializar e então já entram nos laços restantes a partir de
ou
. Mas o esquema acima é explícito e seguro para a prova.
Passo 5
Explicando a comparação: cada vez que você lê um
após a inicialização, você testa a condição lógica
Se a condição for verdadeira, substitui
por
. Isso garante que
guarda sempre o menor valor visto até aquele momento.
Passo 6
Exemplo concreto, rolando passo a passo (para fixar — faça igual na prova se tiver dúvida):
Considere
,
e a matriz
Varredura:
- Leia
. Inicializa . - Leia
. Teste é verdadeiro → . - Leia
. Teste é falso → continua . - Leia
. Teste é falso → continua . - Leia
. Teste é falso → continua . - Leia
. Teste é verdadeiro → .
Resultado final:
, que é o menor elemento da matriz do exemplo.]
Passo 7
Casos extremos e atenção:
- Se
ou então a matriz não tem elementos e não existe um menor valor definido. Em provas normais isso não ocorre, mas se acontecer você deve declarar que não há elementos ou que a operação é inválida. - Se houver valores negativos, zero e positivos, o método continua funcionando normalmente (não depende do sinal).
- Seja cuidadoso ao ler a entrada na ordem correta para não confundir índices.
Passo 8
Complexidade (só para você entender o custo, útil se a prova pedir análise):
- Número de comparações de valores: exatamente
(porque o primeiro elemento apenas inicializa). - Complexidade de tempo:
. - Espaço adicional:
(apenas a variável além da leitura corrente).
Passo 9
Dicas rápidas para a prova (motivação amiga):
- No enunciado, procure já saber se
e são pelo menos . Se sim, inicialize com e varra. - Escreva o passo de inicialização claramente no seu rascunho — isso evita erro comum de comparar com uma constante aleatória.
- Se tiver que escrever código, faça o loop aninhado do jeito mais direto. Se tiver que descrever em palavras, explique a inicialização e a varredura como fizemos.