Buscar

Lista 8 GABARITO - Matrizes

Prévia do material em texto

EMB5013 - Introdução à Programação de Computadores
Profa. Tatiana Renata Garcia
Gabarito Lista 8 –Matrizes em Python
1 - 
### exercicio 1 - matriz identidade
N = input('digite dimensao da matriz: ')
mat = [0]*N
for i in range(N):
 mat[i] = [0] * N
print mat
for j in range(N):
 mat[j][j] = 1
 print mat[j][:]
2 –
### exercicio 2
### calculo da transposta de uma matriz
import random
m = input('Entre com o numero de linhas')
n = input('Entre com o numero de colunas')
### criacao da matriz e preenchimento 
M = [0]* m
for i in range(m):
 M[i]=[0]* n
for i in range(m):
 for j in range(n):
 M[i][j]=random.randint(0,30)
 print M[i][:]
print
### criacao da matriz transposta
MT = [0]* n # linhas MT = colunas M
for i in range(n):
 MT[i]=[0]* m # colunas MT = linhas M
### calculo da transposta
for i in range(n):
 for j in range(m):
 MT[i][j]=M[j][i]
 print MT[i][:]
3 – 
### exercicio 3
### calcular a soma dos impares, a soma das colunas e das linhas
import random 
m = [0]*3		#criacao das linhas
for j in range(3):	#criacao de um vetor para cada linha
 m[j] = [0]* 3
#preenchimento da matriz
for i in range(3):
 for j in range(3):
 m[i][j] = random.randint(0,10)
 print m[i][:]
#calculo da soma dos impares
soma = 0
for i in range(3):
 for j in range(3):
 if m[i][j] % 2 == 1:
 soma = soma + m[i][j]
 
print 'Soma dos impares: ', soma
#calculo da soma das colunas
for i in range(3): #fixa coluna
 somacol = 0
 for j in range(3):
 somacol= somacol + m[j][i]
 print 'Somatorio da coluna', i, '= ', somacol
#calculo da soma das linhas
for i in range(3): #fixa linha
 somalin = 0
 for j in range(3):
 somalin= somalin + m[i][j]
 print 'Somatorio da linha', i, '= ', somalin
4 –
### exercicio 4
### Criar matriz e depois criar vetores com o maior e menor elemento
import random 
m = [0]*10		#criacao das linhas
for j in range(10):	#criacao de um vetor para cada linha
 m[j] = [0]* 10
#preenchimento da matriz
for i in range(10):
 for j in range(10):
 m[i][j] = random.randint(0,100)
 print m[i][:]
#criacao dos vetores
vet1 = [0]*10 #vetor para guardar maiores das linhas
for i in range(10): #fixa a linha
 maior = m[i][0]
 for j in range(10): #varia a coluna
 if m[i][j] > maior:
 maior = m[i][j]
 vet1[i] = maior #coloca na posicao i do vetor o maior elemento da linha i 
 
print 'Maiores elementos das linhas: ', vet1
#criacao dos vetores
vet2 = [0]*10 #vetor para guardar menores das colunas
for i in range(10): #fixa a coluna
 menor = m[0][i]
 for j in range(10): #varia as linhas
 if m[j][i] < menor:
 menor = m[j][i]
 vet2[i] = menor #coloca na posicao i do vetor o 						#menor elemento da coluna i 
print 'Menores elementos das colunas: ', vet2
5 – 
import random 
m = [0]*5		#criacao das linhas
for j in range(5):	#criacao de um vetor para cada linha
 m[j] = [0]* 5
#preenchimento da matriz
for i in range(5):
 for j in range(5):
 m[i][j] = random.randint(0,100)
 print m[i][:]
#troca da segunda linha da com a quinta linha
for j in range(5): #varia coluna
 aux = m[1][j]
 m[1][j] = m[4][j]
 m[4][j] = aux
print
print 'Primeira operacao: troca da segunda linha com quinta linha'
for i in range(5):
 print m[i][:]
#troca da primeira coluna com quarta coluna
for j in range(5): #varia coluna
 aux = m[j][0]
 m[j][0] = m[j][3]
 m[j][3] = aux
print
print 'Segunda operacao: troca da primeira coluna com quarta coluna'
for i in range(5):
 print m[i][:]
6 –
## exercicio para manipular vetores em busca dos impares
import random
tam = 100
vet = [0] * tam
for i in range(tam):
 vet[i] = random.randint(1,50)
impares = 0
for i in range(tam):
 if vet[i] % 2 == 1: #e' impar
 impares = impares +1
print 'Vetor: ', vet
print 'O vetor possui ', impares, 'numeros impares.'
7 – 
### exercicio para manipular matrizes
import random
n = input('Digite dimensao da matriz: ')
X = [0]*n
Y = [0]*n
W = [0]*n
for i in range(n):
 X[i]=[0]*n
 Y[i]=[0]*n
 W[i]=[0]*n
diag = [0]*n #vetor com a diagonal principal
for i in range(n):
 for j in range(n):
 X[i][j]=random.randint(1,10)
 Y[i][j]=random.randint(1,10)
 if X[i][j] < Y[i][j]:
 W[i][j] = X[i][j]
 else:
 W[i][j] = Y[i][j]
 if i == j:
 diag[i] = X[i][j]
print "Matriz X: ", X
print "Matriz Y: ", Y
print "Matriz W (com os menores): ", W
print "Vetor com elementos da diagonal de X: ", diag
s = [0]*n #vetor com a soma das colunas
for i in range(n):
 soma = 0
 for j in range(n):
 soma = soma + Y[j][i]
 s[i] = soma
print "Vetor com a soma das colunas: ", s
maior = s[0]
col = 0
for i in range(n):
 if s[i] > maior:
 maior = s[i]
 col = i
 
print 'Coluna com maior soma: ', col

Continue navegando