Prévia do material em texto
Processamento de dados I
Aula – Matrizes
Prof. João Neto
jnetoufrb@gmail.com
1
1
Definição
Variável multidimensional (linhas e colunas)
É um vetor onde cada elemento é outro vetor
As diversas dimensões que são acessadas por vários índices (para acessar as colunas e as linhas, por exemplo)
Motivação
Para armazenar as notas de um aluno, suponhamos que seja necessário um vetor com 5 posições:
Motivação
Na realidade, na maioria das vezes uma turma possui mais do que um aluno. Sendo assim, considerando por exemplo uma turma com três alunos, teríamos que criar três vetores diferentes! ... Ou então, podemos criar uma matriz:
Acessando os elementos de uma matriz
nome_da_matriz[linha][coluna]
Segunda nota do primeiro aluno:
turma[0][1] -> 4.5
Quinta nota do terceiro aluno:
turma[2][4] -> 9.3
Acessando os elementos de uma matriz
Imprimir todos os elementos de uma matriz
turma = [[5.0, 4.5, 7.0, 5.2, 6.1], [2.1, 6.5, 8.0, 7.0, 6.7], [8.6, 7.0, 9.1, 8.7, 9.3]]
#for para percorrer as linhas
for i in range(3):
#for para percorrer as colunas
for j in range(5):
print(turma[i][j])
turma = [[5.0, 4.5, 7.0, 5.2, 6.1], [2.1, 6.5, 8.0, 7.0, 6.7], [8.6, 7.0, 9.1, 8.7, 9.3]]
#for para percorrer as linhas
for i in range(3):
#for para percorrer as colunas
for j in range(5):
print(turma[i][j])
Acessando os elementos de uma matriz
Imprimir em forma de matriz
turma = [[5.0, 4.5, 7.0, 5.2, 6.1], [2.1, 6.5, 8.0, 7.0, 6.7], [8.6, 7.0, 9.1, 8.7, 9.3]]
#for para percorrer as linhas
for i in range(3):
print(turma[i])
Acessando os elementos de uma matriz
Somar 2 pontos a todas as notas de todos os alunos
turma = [[5.0, 4.5, 7.0, 5.2, 6.1], [2.1, 6.5, 8.0, 7.0, 6.7], [8.6, 7.0, 9.1, 8.7, 9.3]]
#for para percorrer as linhas
for i in range(3):
#for para percorrer as colunas
?????
Acessando os elementos de uma matriz
Somar 2 pontos somente quando a nota for um número par
turma = [[5.0, 4.5, 7.0, 5.2, 6.1], [2.1, 6.5, 8.0, 7.0, 6.7], [8.6, 7.0, 9.1, 8.7, 9.3]]
#for para percorrer as linhas
for i in range(3):
#for para percorrer as colunas
?????
Acessando os elementos de uma matriz
Calcular e imprimir a méida de cada aluno
turma = [[5.0, 4.5, 7.0, 5.2, 6.1], [2.1, 6.5, 8.0, 7.0, 6.7], [8.6, 7.0, 9.1, 8.7, 9.3]]
#for para percorrer as linhas
for i in range(3):
#for para percorrer as colunas
?????
Acessando os elementos de uma matriz
Calcular a média da turma
turma = [[5.0, 4.5, 7.0, 5.2, 6.1], [2.1, 6.5, 8.0, 7.0, 6.7], [8.6, 7.0, 9.1, 8.7, 9.3]]
#for para percorrer as linhas
for i in range(3):
#for para percorrer as colunas
?????
Preenchendo os elementos de uma matriz
turma = []
for i in range(3):
# cria linha vazia
linha = []
for j in range(5):
# vai adicionando as notas na linha
linha.append(0)
# adiciona a linha na matriz turma
turma.append(linha)
Preenchendo os elementos de uma matriz com dados do usuário
turma = []
for i in range(3):
# cria linha vazia
linha = []
for j in range(5):
# vai adicionando as notas na linha
linha.append(int(input('Digite a nota: ')))
# adiciona a linha na matriz turma
turma.append(linha)
Preenchendo os elementos de uma matriz com dados do usuário
Criar uma matriz com dimensões definidas pelo usuário
n = int(input('Digite a dimensão n da matriz: '))
m = int(input('Digite a dimensão m da matriz: '))
turma = []
for i in range(n):
linha = []
for j in range(m):
linha.append(int(input('Digite a nota: ')))
turma.append(linha)
Recapitulando ...
Programa que lê uma matriz 3x3 digitada pelo usuário e conta quantos números pares existem na matriz, imprimindo na tela o resultado e a matriz.
??????
Preenchendo aleatoriamente uma matriz
import random
#Cria matriz que é um vetor composto por outros vetores
matriz = []
for contL in range(5):
linha=[]
for contC in range(5):
linha.append(round(random.random()*10,1))
matriz.append(linha)
# imprime matriz mostrando que é um vetor composto de vetores
print(matriz)
Exercícios
Faça um programa que leia uma matriz 3x3 de inteiros e multiplique os elementos da diagonal principal da matriz por um número k. Imprima a matriz na tela antes e depois da multiplicação.
Faça um programa que leia duas matrizes A e B 2x2 de inteiros e imprima a matriz C que é a soma das matrizes A e B.
Escreva um programa que lê n e uma matriz An x n, e verifica se A é simétrica.
image1.png
image2.png
image3.png
image4.png
image5.png
image6.png