- Gere matriz
com valores no intervalo [1, 20]. Escreva um programa que transforme a matriz gerada numa matriz triangular inferior, ou seja, atribuindo zero a todos os elementos acima da diagonal principal. Imprima a matriz original e a matriz transformada.
Passo 1
O exercício pede para gerar uma matriz 4×4 com valores inteiros aleatórios entre 1 e 20, e em seguida transformar essa matriz em uma triangular inferior, zerando todos os elementos acima da diagonal principal. O conteúdo envolve geração de números aleatórios, estruturas de repetição aninhadas e manipulação de índices de matriz.
Passo 2
Primeiro, vamos gerar a matriz original. Podemos usar um laço duplo (for) para criar as 4 linhas e 4 colunas, e em cada posição sortear um inteiro entre 1 e 20 usando a função apropriada da biblioteca de números aleatórios.
Passo 3
Depois, para transformar a matriz em triangular inferior, usamos outro laço duplo. Em cada posição (i,j), verificamos se j > i (ou seja, se estamos acima da diagonal principal). Se sim, atribuímos zero àquela posição.
Passo 4
Por fim, imprimimos primeiro a matriz original e depois a matriz transformada, respeitando o formato matricial para facilitar a visualização.
Resposta
import random
Função para gerar uma matriz 4×4 com valores de 1 a 20
def gerar_matriz_4x4():
matriz = []
for i in range(4):
linha = []
for j in range(4):
linha.append(random.randint(1, 20))
matriz.append(linha)
return matriz
matriz = []
for i in range(4):
linha = []
for j in range(4):
linha.append(random.randint(1, 20))
matriz.append(linha)
return matriz
Função para transformar matriz em triangular inferior
Zeramos todos os elementos onde a coluna j for maior que a linha i
def triangular_inferior(matriz):
n = len(matriz)
for i in range(n):
for j in range(n):
if j > i:
matriz[i][j] = 0
return matriz
n = len(matriz)
for i in range(n):
for j in range(n):
if j > i:
matriz[i][j] = 0
return matriz
Função para imprimir a matriz
def imprimir_matriz(matriz):
for linha in matriz:
print(’ '.join(f"{val:2d}" for val in linha))
print()
for linha in matriz:
print(’ '.join(f"{val:2d}" for val in linha))
print()
Programa principal
def main():
# Gera a matriz original
matriz_original = gerar_matriz_4x4()
# Gera a matriz original
matriz_original = gerar_matriz_4x4()
print("Matriz Original:")
imprimir_matriz(matriz_original)
# Cria uma cópia para não alterar a original (opcional)
from copy import deepcopy
matriz_triangular = deepcopy(matriz_original)
# Transforma em triangular inferior
triangular_inferior(matriz_triangular)
print("Matriz Triangular Inferior:")
imprimir_matriz(matriz_triangular)
if name == “main”:
main()
main()