Matrizes
Matrizes
Matrizes
| 0 | 1 | 2 |
0 | 8.9 | 7.4 | 5.7 |
1 | 6.9 | 2.7 | 4.0 |
2 | 9.5 | 9.4 | 8.6 |
3 | 4.9 | 8.9 | 6.3 |
4 | 7.2 | 9.9 | 7.7 |
notas
Criando matrizes a partir de listas
# Em Python:
matriz = [[2, 4], [7, 9]]
print(matriz)
>> [[2, 4], [7, 9]]
Criando uma matriz com zeros
# Criando uma matriz de notas de
# 20 alunos em uma disciplina com 3 provas
notas = []
for i in range(20):
linha = []
for j in range(3):
linha.append(0)
notas.append(linha)
Acesso aos elementos de uma matriz
matriz[linha][coluna]
Exemplos:
notas[2][1] = 9.4
notas[0][1] = float(input('Digite a nota'))
# Primeiro, criamos uma matriz tabela de 4 por 5 com zeros:
tabela = []
for i in range(0,4):
linha = []
for j in range(0,5):
linha.append(0)
tabela.append(linha)
# Na representação ao lado,
# os espaços vazios são zeros.
| 0 | 1 | 2 | 3 | 4 |
0 | | | | | |
1 | | | | | |
2 | | | | | |
3 | | | | | |
Acesso aos elementos de uma matriz
tabela[0][0] = 20
| 0 | 1 | 2 | 3 | 4 |
0 | | | | | |
1 | | | | | |
2 | | | | | |
3 | | | | | |
Acesso aos elementos de uma matriz
20
tabela[0][0] = 20
tabela[3][4] = 70
| 0 | 1 | 2 | 3 | 4 |
0 | | | | | |
1 | | | | | |
2 | | | | | |
3 | | | | | |
Acesso aos elementos de uma matriz
70
20
tabela[0][0] = 20
tabela[3][4] = 70
tabela[0][2] = -15
| 0 | 1 | 2 | 3 | 4 |
0 | | | | | |
1 | | | | | |
2 | | | | | |
3 | | | | | |
Acesso aos elementos de uma matriz
70
20
-15
tabela[0][0] = 20
tabela[3][4] = 70
tabela[0][2] = -15
tabela[1][2] = 0
| 0 | 1 | 2 | 3 | 4 |
0 | | | | | |
1 | | | | | |
2 | | | | | |
3 | | | | | |
Acesso aos elementos de uma matriz
70
20
-15
0
tabela[0][0] = 20
tabela[3][4] = 70
tabela[0][2] = -15
tabela[1][2] = 0
tabela[1][3] = 7
| 0 | 1 | 2 | 3 | 4 |
0 | | | | | |
1 | | | | | |
2 | | | | | |
3 | | | | | |
Acesso aos elementos de uma matriz
70
20
-15
0
7
Exemplo1: Programa que lê 3 notas de 5 alunos e as armazena em uma matriz de ordem 5 X 3 de números reais, e em seguida imprime os valores lidos.
notas = []
for i in range(5):
linha = []
for j in range(3):
print('Para o aluno %d, digite a nota %d: ' % (i+1,j+1))
nota = float(input())
linha.append(nota)
notas.append(linha)
print('\nValores lidos:\n')
for i in range(5):
for j in range(3):
print('%5.1f' % notas[i][j], end = '')
print()
Exemplo 2: Programa que leia duas matrizes inteiras 3 X 4 e obtenha uma terceira matriz resultado da soma das duas anteriores. Imprima a matriz resultante.
a, b, c = [], [], []
for i in range(3):
linha = []
for j in range(4):
print('Digite o elemento %d,%d da matriz A: ' % (i+1,j+1))
elemento = int(input())
linha.append(elemento)
a.append(linha)
for i in range(3):
linha = []
for j in range(4):
print('Digite o elemento %d,%d da matriz B: ' % (i+1,j+1))
elemento = int(input())
linha.append(elemento)
b.append(linha)
for i in range(3):
linha = []
for j in range(4):
elemento = a[i][j] + b[i][j]
linha.append(elemento)
c.append(linha)
print('\nMatriz C resultante da soma de A e B:\n')
for i in range(3):
for j in range(4):
print('%5d ' % c[i][j], end = '')
print()
Alterando o Exemplo 2 para ter um loop a menos:
Mais eficiência nem sempre significa correção
a, b, c = [], [], []
for i in range(3):
linha = []
for j in range(4):
print('Digite o elemento %d,%d da matriz A: ' % (i+1,j+1))
elemento = int(input())
linha.append(elemento)
a.append(linha)
for i in range(3):
linha = []
for j in range(4):
print('Digite o elemento %d,%d da matriz B: ' % (i+1,j+1))
elemento = int(input())
linha.append(elemento)
b.append(linha)
print('\nMatriz C resultante da soma de A e B:\n')
for i in range(3):
linha = []
for j in range(4):
elemento = a[i][j] + b[i][j]
linha.append(elemento)
print('%5d ' % c[i][j], end = '') # esta linha tem um erro
c.append(linha) # somente após adicionar a linha, pode-se indexar c[i][j]
print()
Exemplo 3: Programa que leia uma matriz 20x10 de números inteiros e calcule e imprima a soma de cada uma das linhas da matriz.
a = []
for i in range(20):
linha = []
for j in range(10):
print('Digite o elemento %d,%d da matriz A: ' % (i+1,j+1))
elemento = int(input())
linha.append(elemento)
a.append(linha)
print('\nSomas das linhas da matriz:\n')
for i in range(20):
soma = 0
for j in range(10):
soma += a[i][j]
print('A soma dos elementos da linha %d é: %d.' % (i+1, soma))
Alterando o Exemplo 3 para usar um vetor de somas:
Vetores derivados de matrizes podem ser úteis em certas situações
a = []
for i in range(20):
linha = []
for j in range(10):
print('Digite o elemento %d,%d da matriz A: ' % (i+1,j+1))
elemento = int(input())
linha.append(elemento)
a.append(linha)
print('\nSomas das linhas da matriz:\n')
somas = []
for i in range(20):
somas.append(0)
for j in range(10):
somas[i] += a[i][j]
print('A soma dos elementos da linha %d é: %d.' % (i+1, somas[i]))
Exercícios