Escreva um código em Python que transforma uma matriz composta por inteiros positivos maiores que zero em duas matrizes I e P. Na matriz I, coloque todos os elementos ímpares e na matriz todos os elementos pares. Coloque os elementos no mesmo local que eles estavam originalmente em M. Complete as matrizes com 0 . Exemplo:


Passo 1

Beleza, vamos começar entendendo o que a questão está pedindo. A gente tem uma matriz M cheia de números inteiros positivos maiores que zero. A tarefa é criar duas novas matrizes, I e P. Na matriz I, a gente coloca todos os números ímpares da M na mesma posição onde eles estavam originalmente, e substituímos os outros números por 0. Já na matriz P, fazemos o contrário: colocamos os números pares de M nas suas posições originais e substituímos os ímpares por 0. Para isso, vamos precisar trabalhar com listas em Python e usar estruturas de repetição e condições para verificar se um número é par ou ímpar.

Passo 2

Primeiro, vamos pensar em como representar a matriz M em Python. A gente pode usar uma lista de listas, onde cada sublista representa uma linha da matriz. Por exemplo:
M = [[1, 2], [3, 4]]

Passo 3

Agora, vamos criar as matrizes I e P com a mesma estrutura de M, mas preenchidas inicialmente com zeros. Isso é importante porque, se um elemento não atender à condição (ser ímpar ou par), ele vai ficar como 0. Podemos fazer isso usando uma list comprehension que percorre cada linha e cada elemento, preenchendo com 0:
I = [[0 for _ in range(len(M[0]))] for _ in range(len(M))]
P = [[0 for _ in range(len(M[0]))] for _ in range(len(M))]

Passo 4

Vamos agora percorrer cada elemento da matriz M para verificar se ele é par ou ímpar. Para isso, usamos dois loops for: um para as linhas e outro para os elementos dentro das linhas. A função % (módulo) nos ajuda a determinar se um número é par (num % 2 == 0) ou ímpar (num % 2 != 0).
for i in range(len(M)):
    for j in range(len(M[0])):
        num = M[i][j]
        if num % 2 == 0:
            P[i][j] = num
        else:
            I[i][j] = num

Passo 5

Vamos juntar tudo isso em uma função para deixar o código mais organizado. A função vai receber uma matriz M e retornar as matrizes I e P conforme as regras que definimos.
def separar_matriz(M):
    I = [[0 for _ in range(len(M[0]))] for _ in range(len(M))]
    P = [[0 for _ in range(len(M[0]))] for _ in range(len(M))]
    
    for i in range(len(M)):
        for j in range(len(M[0])):
            num = M[i][j]
            if num % 2 == 0:
                P[i][j] = num
            else:
                I[i][j] = num
    return I, P

Passo 6

Por fim, vamos testar a nossa função com o exemplo dado na questão para ver se está funcionando certinho.
M = [[1, 2], [3, 4]]
I, P = separar_matriz(M)
print("I =", I)
print("P =", P)
Ao rodar esse código, a saída deve ser:
I = [[1, 0], [3, 0]]
P = [[0, 2], [0, 4]]

Resposta

Prontinho! O código completo para separar a matriz M em I e P está funcionando conforme o exemplo:
def separar_matriz(M):
    I = [[0 for _ in range(len(M[0]))] for _ in range(len(M))]
    P = [[0 for _ in range(len(M[0]))] for _ in range(len(M))]
    
    for i in range(len(M)):
        for j in range(len(M[0])):
            num = M[i][j]
            if num % 2 == 0:
                P[i][j] = num
            else:
                I[i][j] = num
    return I, P

# Exemplo de uso
M = [[1, 2], [3, 4]]
I, P = separar_matriz(M)
print("I =", I)
print("P =", P)
E a saída será:
I = [[1, 0], [3, 0]]
P = [[0, 2], [0, 4]]

Exercícios relacionados

Faça um programa, com uma função que necessite de três argumentos, e que forneça a soma desses três argumentos.
Faça um programa que solicite a data de nascimento (dd/mm/aaaa) do usuário e imprima a data com o nome do mês por extenso. Exemplo para a data 13/05/2000:
Data de nascimento 13/05/2000
Você nasceu em 13 de maio de 1973.
Desenvolva um jogo em que o usuário tenha que adivinhar uma palavra que será mostrada com as letras embaralhadas. O programa terá uma lista de palavras lidas de um arquivo
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