Faça um código em Python que dada uma matriz, informa o maior ou menor elemento da linha ou da coluna. Crie um menu que permite o usuário qual tipo de elemento quer (maior ou menor) e em que dimensão buscar (linha ou coluna).
Passo 1
Beleza, vamos resolver esse exercício juntos! A questão pede para a gente criar um código em Python que, dado uma matriz, informe o maior ou menor elemento de uma linha ou coluna específica. Além disso, devemos criar um menu para que o usuário escolha se quer encontrar o maior ou menor elemento e em qual dimensão (linha ou coluna) deseja buscar. Para isso, vamos precisar entender como trabalhar com matrizes em Python, como iterar sobre elas e como implementar um menu interativo.
Passo 2
Primeiro, vamos entender o que é uma matriz. Em Python, uma matriz pode ser representada como uma lista de listas, onde cada lista interna representa uma linha da matriz. Por exemplo:
matriz = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
Aqui,
matriz[0]
é a primeira linha [1, 2, 3]
, matriz[1]
é a segunda linha [4, 5, 6]
, e assim por diante.Passo 3
Agora, vamos pensar em como encontrar o maior ou menor elemento de uma linha ou coluna. Para linhas, é mais simples, pois cada linha é uma lista separada. Podemos usar as funções
max()
e min()
do Python diretamente em uma linha. Por exemplo:maior_elemento = max(matriz[0]) # Maior elemento da primeira linha
menor_elemento = min(matriz[1]) # Menor elemento da segunda linha
Para colunas, precisamos acessar elementos em posições específicas de cada linha. Por exemplo, para a primeira coluna, pegamos o primeiro elemento de cada linha:
coluna1 = [linha[0] for linha in matriz]
maior_elemento_coluna1 = max(coluna1)
Passo 4
Vamos agora criar um menu para o usuário escolher o que deseja fazer. Para isso, vamos usar um loop que continua pedindo a escolha até o usuário decidir sair. O menu vai oferecer as seguintes opções:
- Encontrar o maior elemento de uma linha
- Encontrar o menor elemento de uma linha
- Encontrar o maior elemento de uma coluna
- Encontrar o menor elemento de uma coluna
- Sair
Vamos implementar isso usando a função
input()
para capturar a escolha do usuário e print()
para exibir as opções.Passo 5
Com o menu pronto, precisamos implementar as funções que realizam as buscas. Vamos criar duas funções: uma para lidar com as linhas e outra para as colunas. Cada função vai receber a matriz e o tipo de operação (máximo ou mínimo) e retornar o resultado desejado.
Para as linhas:
def buscar_linha(matriz, tipo, numero_linha):
if tipo == 'maior':
return max(matriz[numero_linha])
else:
return min(matriz[numero_linha])
Para as colunas:
def buscar_coluna(matriz, tipo, numero_coluna):
coluna = [linha[numero_coluna] for linha in matriz]
if tipo == 'maior':
return max(coluna)
else:
return min(coluna)
Passo 6
Agora, vamos juntar tudo no nosso programa principal. Vamos definir uma matriz de exemplo, exibir o menu, capturar as escolhas do usuário e chamar as funções apropriadas para mostrar o resultado. Também vamos adicionar verificações para garantir que o usuário insira números válidos para linhas e colunas.
Passo 7
Por fim, vamos testar o nosso programa para garantir que tudo está funcionando corretamente. Vamos usar uma matriz de exemplo e escolher diferentes opções no menu para ver se os resultados estão corretos.
Resposta
Aqui está o código completo em Python que atende a todos os requisitos do exercício:
def buscar_linha(matriz, tipo, numero_linha):
if tipo == 'maior':
return max(matriz[numero_linha])
else:
return min(matriz[numero_linha])
def buscar_coluna(matriz, tipo, numero_coluna):
coluna = [linha[numero_coluna] for linha in matriz]
if tipo == 'maior':
return max(coluna)
else:
return min(coluna)
def exibir_menu():
print("\nEscolha uma opção:")
print("1. Encontrar o maior elemento de uma linha")
print("2. Encontrar o menor elemento de uma linha")
print("3. Encontrar o maior elemento de uma coluna")
print("4. Encontrar o menor elemento de uma coluna")
print("5. Sair")
def main():
# Exemplo de matriz
matriz = [
[10, 20, 30],
[40, 50, 60],
[70, 80, 90]
]
while True:
exibir_menu()
escolha = input("Digite o número da opção desejada: ")
if escolha == '5':
print("Saindo do programa. Até a próxima!")
break
if escolha in ['1', '2']:
tipo = 'maior' if escolha == '1' else 'menor'
try:
numero_linha = int(input(f"Digite o número da linha (0 a {len(matriz)-1}): "))
if 0 <= numero_linha < len(matriz):
resultado = buscar_linha(matriz, tipo, numero_linha)
print(f"O {tipo} elemento da linha {numero_linha} é: {resultado}")
else:
print("Número da linha inválido.")
except ValueError:
print("Entrada inválida. Por favor, digite um número inteiro.")
elif escolha in ['3', '4']:
tipo = 'maior' if escolha == '3' else 'menor'
try:
numero_coluna = int(input(f"Digite o número da coluna (0 a {len(matriz[0])-1}): "))
if 0 <= numero_coluna < len(matriz[0]):
resultado = buscar_coluna(matriz, tipo, numero_coluna)
print(f"O {tipo} elemento da coluna {numero_coluna} é: {resultado}")
else:
print("Número da coluna inválido.")
except ValueError:
print("Entrada inválida. Por favor, digite um número inteiro.")
else:
print("Opção inválida. Por favor, escolha uma opção entre 1 e 5.")
if __name__ == "__main__":
main()
Como funciona o código:
-
Funções de Busca: Criamos duas funções,
buscar_linha
ebuscar_coluna
, que recebem a matriz, o tipo de busca ('maior'
ou'menor'
) e o número da linha ou coluna. Elas retornam o elemento desejado usando as funçõesmax()
oumin()
. -
Menu Interativo: A função
exibir_menu
mostra as opções disponíveis para o usuário. Nomain()
, usamos um loopwhile
para continuar exibindo o menu até que o usuário escolha sair (opção 5). -
Captura e Validação de Entrada: Ao escolher uma opção, o programa solicita o número da linha ou coluna. Verificações são feitas para garantir que o número esteja dentro do intervalo válido. Se a entrada for inválida, o programa avisa o usuário.
-
Exibição do Resultado: Após validar as entradas, o programa chama a função apropriada para buscar o maior ou menor elemento e exibe o resultado.
Testando o Programa:
Ao executar o programa, você verá o menu e poderá escolher diferentes opções. Por exemplo:
Escolha uma opção:
1. Encontrar o maior elemento de uma linha
2. Encontrar o menor elemento de uma linha
3. Encontrar o maior elemento de uma coluna
4. Encontrar o menor elemento de uma coluna
5. Sair
Digite o número da opção desejada: 1
Digite o número da linha (0 a 2): 1
O maior elemento da linha 1 é: 60
Repita o processo para outras opções e verifique se os resultados estão corretos. Assim, conseguimos atender a todos os requisitos do exercício de forma clara e funcional!
Exercícios relacionados
Faça uma função que informe a quantidade de dígitos de um determinado número inteiro informado.
Escreva um programa que recebe uma string digitada pelo usuário e a escreve em formato de escada. Exemplo: considerando que o usuário digite C
CA
CAS
CASA
CA
CAS
CASA
Escreva um programa que a partir de uma lista1 e uma lista2 (ambos de tamanho
) cria um dicionário onde as chaves são os itens da lista1 e os valores são os itens da lista2.
Escreva um programa em Python que cria um dicionário a partir de uma string digitada. As chaves do dicionário devem ser as letras da string e os valores de tais chaves a quantidade de ocorrências das mesmas na palavra.