Buscar

Sobre Matrizes

Prévia do material em texto

Em algoritmos uma matriz é uma variável 
composta por linhas e colunas alocadas 
sequencialmente na memória. 
O que distingue cada célula de uma matriz são 
dois índices que referenciam sua localização 
dentro da estrutura. 
Matriz[linha][ coluna]
Criação e inicialização de uma matriz:
• Considere uma matriz M[L][C], onde L é o 
número de linhas e C é o número de colunas.
• A criação e inicialização de M são feitas conforme 
segue:
M = [[None]*C for K in range(L)]
• O comando “for” cria um vetor de vetores, ou 
seja, cria um vetor com C posições para cada 
posição do vetor M.
Neste exemplo, inicializa todas as células 
com None:
>>> M = [[None]*2 for k in range(2)]
>>> M
[ [None, None], [None, None] ]
Neste exemplo, inicializa todas as células 
com ‘UEM’:
>>> M = [['UEM']*2 for k in range(3)]
>>> M
[['UEM', 'UEM'], ['UEM', 'UEM'], ['UEM', 'UEM']]
Exemplo de Matriz:
>>> linhas = 2
>>> colunas = 6
>>> M = [[0]*colunas for k in range(linhas)]
>>> print(M)
[[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]]
0 0 0 0 0 0
0 0 0 0 0 0
Atribuindo valores à Matriz:
linhas = 2; colunas = 5
M = [[None]*colunas for k in range(linhas)]
for col in range(colunas): 
M[0][col] = col*10
0 10 20 30 40
None None None None None
Carregando uma Matriz a partir do teclado:
linhas = 2; colunas = 5
M = [[None]*colunas for k in range(linhas)] 
for lin in range(linhas):
print()
for col in range(colunas):
M[lin][col] = int(input('M[%d][%d] = ' %(lin,col)))
10 20 30 None None
None None None None None
M[0][0] = 10
M[0][1] = 20
M[0][2] = 30
. . .
Mostrando as linhas da Matriz:
for lin in range(linhas):
print(M[lin])
10 20 30 40 50
60 70 80 90 100
[10, 20, 30, 40, 50]
[60, 70, 80, 90, 100]
Faça um programa que carregue uma matriz 
2 x 2, calcule e mostre uma matriz 
resultante que será a matriz digitada 
multiplicada pelo maior elemento da matriz.
LINHAS = 2; COLUNAS = 2
M = [[None]*COLUNAS for K in range(LINHAS)]
for lin in range(LINHAS):
for col in range(COLUNAS):
M[lin][col] = ler()
#Mostrar a matriz inicial
...
EXERCÍCIO 1
def ler():
while True:
try:
num = eval(input('Digite um numero: '))
break
except:
print('\nValor Inválido.')
return num
#fim ler()
LINHAS = 2; COLUNAS = 2
M = [[None]*COLUNAS for K in range(LINHAS)]
for lin in range(LINHAS):
for col in range(COLUNAS):
M[lin][col] = ler()
print('\nMATRIZ INICIAL:')
for lin in range(LINHAS): 
print(M[lin])
#Encontrar o maior
MAIOR = M[0][0]
...
EXERCÍCIO 1
LINHAS = 2; COLUNAS = 2
M = [[None]*COLUNAS for K in range(LINHAS)]
for lin in range(LINHAS):
for col in range(COLUNAS):
M[lin][col] = ler()
print('\nMATRIZ INICIAL:')
for lin in range(LINHAS): 
print(M[lin])
MAIOR = M[0][0]
for lin in range(LINHAS):
for col in range(COLUNAS):
if M[lin][col] > MAIOR:
MAIOR = M[lin][col]
print('\nMaior = ', MAIOR)
#Mostrar a matriz resultante
...
EXERCÍCIO 1
LINHAS = 2; COLUNAS = 2
M = [[None]*COLUNAS for K in range(LINHAS)]
for lin in range(LINHAS):
for col in range(COLUNAS):
M[lin][col] = ler()
print('\nMATRIZ INICIAL:')
for lin in range(LINHAS): 
print(M[lin])
MAIOR = M[0][0]
for lin in range(LINHAS):
for col in range(COLUNAS):
if M[lin][col] > MAIOR:
MAIOR = M[lin][col]
print('\nMaior = ', MAIOR)
print('\nMATRIZ RESULTANTE:')
for lin in range(LINHAS):
for col in range(COLUNAS):
M[lin][col] = MAIOR * M[lin][col]
for lin in range(LINHAS):
print(M[lin]) 
EXERCÍCIO 1
Faça um programa que carregue uma matriz
6 x 4 com números inteiros. Calcule e
mostre quantos elementos dessa matriz são
maiores que 30 e, em seguida, monte uma
segunda matriz com os elementos
diferentes de 30. No lugar do número 30 da
segunda matriz coloque o número zero.
NLIN = 6; NCOL = 4; NMAIOR30 = 0
M = [[None]*NCOL for K in range(NLIN)]
M2 = [[None]*NCOL for K in range(NLIN)]
for L in range(NLIN):
for C in range(NCOL):
M[L][C] = ler()
for L in range(NLIN):
print(M[L]) #MATRIZ INICIAL
# Localizar elementos maiores ou iguais a 30
EXERCICIO 2
NLIN = 6; NCOL = 4; NMAIOR30 = 0
M = [[None]*NCOL for K in range(NLIN)]
M2 = [[None]*NCOL for K in range(NLIN)]
for L in range(NLIN):
for C in range(NCOL):
M[L][C] = ler()
for L in range(NLIN):
print(M[L]) #MATRIZ INICIAL
for L in range(NLIN):
for C in range(NCOL):
if M[L][C] > 30:
NMAIOR30 += 1
if M[L][C] == 30:
M2[L][C] = 0
else:
M2[L][C] = M[L][C]
print('\nElementos maiores do que 30 = ', NMAIOR30)
for L in range(NLIN):
print(M2[L]) #MATRIZ RESULTANTE
EXERCICIO 2
Faça um programa que carregue uma matriz
10 x 20 com números inteiros e some cada
uma das linhas, armazenando o resultado
das somas em um vetor. A seguir,
multiplique cada elemento da matriz pela
soma da linha e mostre a matriz resultante.
LINHAS = 2; COLUNAS = 2
M = [[None]*COLUNAS for K in range(LINHAS)]
for L in range(LINHAS):
for C in range(COLUNAS):
M[L][C] = ler()
S = [None]*LINHAS
for L in range(LINHAS):
S[L] = 0
for C in range(COLUNAS):
S[L] = S[L] + M[L][C]
for L in range(LINHAS): #MATRIZ INICIAL
print(M[L], '--> Soma da linha %d = %d' %(L, S[L]))
R = [[None]*COLUNAS for K in range(LINHAS)]
for L in range(LINHAS):
for C in range(COLUNAS):
R[L][C] = M[L][C] * S[L]
for L in range(LINHAS):
print(R[L]) #MATRIZ RESULTANTE
EXERCICIO 3
Faça uma função que receba como parâmetro um
inteiro no intervalo fechado de 1 a 9 e mostre a
seguinte tabela de multiplicação:
Exemplo, N = 5:
[1, 0, 0, 0, 0]
[2, 4, 0, 0, 0]
[3, 6, 9, 0, 0]
[4, 8, 12, 16, 0]
[5, 10, 15, 20, 25]
Faça uma função que receba como parâmetro um inteiro no intervalo
fechado de 1 a 9 e mostre a seguinte tabela de multiplicação:
Exemplo, N = 5:
[1, 0, 0, 0, 0]
[2, 4, 0, 0, 0]
[3, 6, 9, 0, 0]
[4, 8, 12, 16, 0]
[5, 10, 15, 20, 25]
# PP Ex4
NUM = int(input('Digite um nº no intevalo de 1 a 9: '))
while NUM < 1 or NUM > 9:
NUM = int(input('Digite um nº no intevalo de 1 a 9:'))
print()
multiplic(NUM) #chamada da função
# Fim Ex1
def multiplic(N):
"""MOSTRA TABELA DE MULTIPLICAÇÃO linha x coluna."""
M = [[0]*N for k in range(N)]
for L in range(N):
for C in range(L+1):
M[L][C] = (L+1)*(C+1)
for L in range(N):
print(M[L])
# Fim multiplic()
# PP Ex4
NUM = int(input('Digite um nº no intevalo de 1 a 9: '))
while NUM < 1 or NUM > 9:
NUM = int(input('Digite um nº no intevalo de 1 a 9:'))
print()
multiplic(NUM) #chamada da função
# Fim Ex1
Faça um programa que carregue uma matriz 10 x 3
com as notas de dez alunos em três provas.
Mostre um relatório com o número do aluno (número
da linha) e a prova em que cada aluno obteve
menor nota.
Ao final do relatório, mostre quantos alunos tiveram
menor nota na prova 1, quantos alunos tiveram
menor nota na prova 2 e quantos alunos tiveram
menor nota na prova 3.

Continue navegando