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:
  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
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:
  1. Funções de Busca: Criamos duas funções, buscar_linha e buscar_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ções max() ou min().
  2. Menu Interativo: A função exibir_menu mostra as opções disponíveis para o usuário. No main(), usamos um loop while para continuar exibindo o menu até que o usuário escolha sair (opção 5).
  3. 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.
  4. 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
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.