Buscar

estruturas de dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aula 15 – Estrutura de Dados
continuação
Computação I - aula 9 - 2012/2 2
Listas - Matrizes
Podemos usar listas para armazenar e manipular 
matrizes.
ExemploExemplo
2 -3 4
0 7 5
[ [2,-3,4] , [0, 7,5] ]
MATRIZ = [ [2, -3, 4],[0, 7, 5] ]
for i in range(2):
 for j in range (3):
 print MATRIZ[i][j],
 print
MATRIZ [0] [0] = 2 MATRIZ [1] [0] = 0
MATRIZ [0] [1] = -3 MATRIZ [1] [1] = 7
MATRIZ [0] [2] = 4 MATRIZ [1] [2] = 5
0
1
0 1 2
MATRIZ [linha] [coluna]MATRIZ [linha] [coluna]
Computação I - aula 9 - 2012/2 3
Listas - Matrizes
Exercício:Exercício: Construa uma matriz 4x3 com valores 
iguais a zero. Imprima a matriz.
Computação I - aula 9 - 2012/2 4
Listas - Matrizes
Exercício:Exercício: Construa uma matriz 4x3 com valores 
iguais a zero. Imprima a matriz.
def main():
 matriz = []
 for i in range(4):
 linha = []
 for i in range(3):
 linha.append(0)
 matriz = matriz+[linha]
 for i in range(4):
 for j in range (3):
 print matriz[i][j],
 print
if __name__ == "__main__":
 main()
def main():
 matriz = []
 for i in range(4):
 matriz.append([0]*3)
 for i in range(4):
 for j in range (3):
 print matriz[i][j],
 print
if __name__ == "__main__":
 main()
ATENÇÃO: estes programas são equivalentes?ATENÇÃO: estes programas são equivalentes?
Prog. 1Prog. 1 Prog. 2Prog. 2
Computação I - aula 9 - 2012/2 5
Listas - Matrizes
Exercício:Exercício: Construa uma matriz 4x3 com valores 
iguais a zero. Imprima a matriz.
def main():
 matriz = []
 for i in range(4):
 linha = []
 for i in range(3):
 linha.append(0)
 matriz = matriz+[linha]
 for i in range(4):
 for j in range (3):
 print matriz[i][j],
 print
if __name__ == "__main__":
 main()
def main():
 matriz = []
 for i in range(4):
 matriz.append([0]*3)
 for i in range(4):
 for j in range (3):
 print matriz[i][j],
 print
if __name__ == "__main__":
 main()
Prog. 1Prog. 1 Prog. 2Prog. 2
Podemos simplificar a inicializaçãoPodemos simplificar a inicialização
destas matrizes usando [ … for ...] ?destas matrizes usando [ … for ...] ?
Computação I - aula 9 - 2012/2 6
Listas - Matrizes
Exercício:Exercício: Construa uma matriz 4x3 com valores 
iguais a zero. Imprima a matriz.
def main():
 matriz=[[0 for j in range(3)] for i in range(4)]
 for i in range(4):
 for j in range (3):
 print matriz[i][j],
 print
if __name__ == "__main__":
 main()
Podemos simplificar a inicializaçãoPodemos simplificar a inicialização
destas matrizes usando [ … for ...] ?destas matrizes usando [ … for ...] ?
Computação I - aula 9 - 2012/2 7
Listas - Matrizes
Exercício:Exercício: Faça um programa que permita ao usuário construir uma matriz de inteiros 
N x M. Imprima a matriz que foi fornecida.
Computação I - aula 9 - 2012/2 8
Listas - Matrizes
def main():
 matriz = []
 N = input("Número de linhas: ")
 M = input("Número de colunas: ")
#inicializando matriz
 matriz=[[0 for j in range(M)] for i in range(N)]
#Preenchendo matriz
 for i in range(N):
 for j in range (M):
 mensagem="Entre com o elemento da linha "+ str(i+1)+" e coluna "+str(j+1)+" : "
 matriz[i][j]= input(mensagem)
#Imprimindo matriz
 for i in range(4):
 for j in range (3):
 print matriz[i][j],
 print
if __name__ == "__main__":
 main()
ATENÇÃO: ATENÇÃO: TESTE ESTE TESTE ESTE 
PROGRAMAPROGRAMA
Exercício:Exercício: Faça um programa que permita ao usuário construir uma matriz de inteiros 
N x M. Imprima a matriz que foi fornecida.
Computação I - aula 9 - 2012/2 9
Listas - Matrizes
def main():
 matriz = []
 N = int(input("Número de linhas: "))
 M = int(input("Número de colunas: "))
#inicializando matriz – Prog. 2 – slide 4
 for i in range(N):
 matriz.append([0]*M)
#Preenchendo matriz
 for i in range(N):
 for j in range (M):
 mensagem="Entre com o elemento da linha "+ str(i+1)+" e coluna "+str(j+1)+" : "
 matriz[i][j]= input(mensagem)
#Imprimindo matriz
 for i in range(4):
 for j in range (3):
 print matriz[i][j],
 print
if __name__ == "__main__":
 main()
ATENÇÃO: ATENÇÃO: TESTE ESTE TESTE ESTE 
PROGRAMAPROGRAMA
Exercício:Exercício: Faça um programa que permita ao usuário construir uma matriz de inteiros 
N x M. Imprima a matriz que foi fornecida.
Computação I - aula 9 - 2012/2 10
Listas - Matrizes
def main():
 matriz = []
 N = input("Número de linhas: ")
 M = input("Número de colunas: ")
#inicializando matriz – Prog. – slide 6
 matriz=[[0 for j in range(M)] for i in range(N)]
#Preenchendo matriz
 for i in range(N):
 for j in range (M):
 mensagem="Entre com o elemento da linha "+ str(i+1)+" e coluna "+str(j+1)+" : "
 matriz[i][j]= input(mensagem)
#Imprimindo matriz
 for i in range(4):
 for j in range (3):
 print matriz[i][j],
 print
if __name__ == "__main__":
 main()
ATENÇÃO: ATENÇÃO: TESTE ESTE TESTE ESTE 
PROGRAMAPROGRAMA
Podemos usar esta inicializaçãoPodemos usar esta inicialização
para outros programas?para outros programas?
Exercício:Exercício: Faça um programa que permita ao usuário construir uma matriz de inteiros 
N x M. Imprima a matriz que foi fornecida.
Computação I - aula 9 - 2012/2 11
Listas - Matrizes
def iniciaMatriz(linha,coluna):
return [[0 for j in range(coluna)] for i in range(linha)]
 
def main():
 matriz = []
 N = input("Número de linhas: ")
 M = input("Número de colunas: ")
 matriz = iniciaMatriz(N,M)
#Preenchendo matriz
 for i in range(N):
 for j in range (M):
 mensagem="Entre com o elemento da linha "+ str(i+1)+" e coluna "+str(j+1)+" : "
 matriz[i][j]= input(mensagem)
#Imprimindo matriz
 for i in range(4):
 for j in range (3):
 print matriz[i][j],
 print
if __name__ == "__main__":
 main()
Sim, definimos uma função.Sim, definimos uma função.
Exercício:Exercício: Faça um programa que permita ao usuário construir uma matriz de inteiros 
N x M. Imprima a matriz que foi fornecida.
Computação I - aula 9 - 2012/2 12
Listas - Matrizes
def iniciaMatriz(linha,coluna):
return [[0 for j in range(coluna)] for i in range(linha)]
 
def main():
 matriz = []
 N = input("Número de linhas: ")
 M = input("Número de colunas: ")
 matriz = iniciaMatriz(N,M)
#Preenchendo matriz
 for i in range(N):
 for j in range (M):
 mensagem="Entre com o elemento da linha "+ str(i+1)+" e coluna "+str(j+1)+" : "
 matriz[i][j]= input(mensagem)
#Imprimindo matriz
 for i in range(4):
 for j in range (3):
 print matriz[i][j],
 print
if __name__ == "__main__":
 main()
Sim, definimos uma função.Sim, definimos uma função.
Exercício:Exercício: Faça um programa que permita ao usuário construir uma matriz de inteiros 
N x M. Imprima a matriz que foi fornecida.
Podemos aproveitar a entradaPodemos aproveitar a entrada
de valores para outros programas?de valores para outros programas?
Computação I - aula 9 - 2012/2 13
Listas - Matrizes
def iniciaMatriz(linha,coluna):
return [[0 for j in range(coluna)] for i in range(linha)]
def leMatriz(matriz,linha,coluna):
 for i in range(linha):
 for j in range(coluna):
 mensagem="Entre com o elemento da linha "+ str(i+1)+" e coluna "+str(j+1)+" : "
 matriz[i][j]= input(mensagem)
 return matriz
 
defmain():
 matriz = []
 N = input("Número de linhas: ")
 M = input("Número de colunas: ")
 matriz = iniciaMatriz(N,M)
 matriz = leMatriz(matriz,N,M)
#Imprimindo matriz
 for i in range(N):
 for j in range (M):
 print matriz[i][j],
 print
if __name__ == "__main__":
 main()
Sim, definimos uma função.Sim, definimos uma função.
Exercício:Exercício: Faça um programa que permita ao usuário construir uma matriz de inteiros 
N x M. Imprima a matriz que foi fornecida.
Computação I - aula 9 - 2012/2 14
Listas - Matrizes
def iniciaMatriz(linha,coluna):
return [[0 for j in range(coluna)] for i in range(linha)]
def leMatriz(matriz,linha,coluna):
 for i in range(linha):
 for j in range(coluna):
 mensagem="Entre com o elemento da linha "+ str(i+1)+" e coluna "+str(j+1)+" : "
 matriz[i][j]= input(mensagem)
 return matriz
 
def main():
 matriz = []
 N = input("Número de linhas: ")
 M = input("Número de colunas: ")
 matriz = iniciaMatriz(N,M)
 matriz = leMatriz(matriz,N,M)
#Imprimindo matriz
 for i in range(N):
 for j in range (M):
 print matriz[i][j],
 print
if __name__ == "__main__":
 main()
Sim, definimos uma função.Sim, definimos uma função.
Exercício:Exercício: Faça um programa que permita ao usuário construir uma matriz de inteiros 
N x M. Imprima a matriz que foi fornecida.
Podemos usar esta forma de impressão emPodemos usar esta forma de impressão em
outros programas?outros programas?
Computação I - aula 9 - 2012/2 15
Listas - Matrizes
def iniciaMatriz(linha,coluna):
return [[0 for j in range(coluna)] for i in range(linha)]
def leMatriz(matriz,linha,coluna):
 for i in range(linha):
 for j in range(coluna):
 mensagem="Entre com o elemento da linha "+ str(i+1)+" e coluna "+str(j+1)+" : "
 matriz[i][j]= input(mensagem)
 return matriz
 
def imprimirMatriz(matriz,linha,coluna):
 for i in range(linha):
 for j in range (coluna):
 print matriz[i][j],
 print
 return
def main():
 matriz = []
 N = input("Número de linhas: ")
 M = input("Número de colunas: ")
 matriz = iniciaMatriz(N,M)
 matriz = leMatriz(matriz,N,M)
 imprimirMatriz(matriz,N,M)
if __name__ == "__main__":
 main()
Sim, definimos uma função.Sim, definimos uma função.
Exercício:Exercício: Faça um programa que permita ao usuário construir uma matriz de inteiros 
N x M. Imprima a matriz que foi fornecida.
Computação I - aula 9 - 2012/2 16
Listas - Matrizes
Simplificando a entrada de matrizes
- Elimine a função iniciaMatriz(linha,coluna) 
- Reescreva a função leMatriz:
- Elimine as linhas de main():
N = input("Número de linhas: ")
M = input("Número de colunas: ")
matriz = iniciaMatriz(N,M)
matriz = leMatriz(matriz,N,M)
Por:
 matriz = leMatriz()
 N = len(matriz)
 M = len(matriz[0])
def leMatriz():
 return input("Entre com a matriz: ")
# ou eval(input("Entre com a matriz: ")) na versão 3.2
Computação I - aula 9 - 2012/2 17
Listas - Matrizes
def leMatriz():
 return input("Entre com a matriz: ")
def imprimirMatriz(matriz,linha,coluna):
 for i in range(linha):
 for j in range (coluna):
 print matriz[i][j],
 print
 return
def main():
 matriz = leMatriz()
 N = len(matriz)
 M = len(matriz[0])
 imprimirMatriz(matriz,N,M)
if __name__ == "__main__":
 main()
Exercício:Exercício: Faça um programa que permita ao usuário construir uma matriz de inteiros 
N x M. Imprima a matriz que foi fornecida.
Computação I - aula 9 - 2012/2 18
Listas - MatrizesExercício:Exercício:
Escreva uma função para multiplicar os elementos da diagonal principal de uma 
dada matriz por um valor k.
Seu programa deve começar lendo a matriz. Depois, leia o valor de k.
Imprima a matriz resultante.
Computação I - aula 9 - 2012/2 19
Listas - Matrizes
def muldiago(matriz,k):
 for i in range(len(matriz)):
 matriz[i][i] *= k
 return matriz
def leMatriz():
 return input("Entre com a matriz: ")
def imprimirMatriz(matriz,linha,coluna):
 for i in range(linha):
 for j in range (coluna):
 print matriz[i][j],
 print
 return
def main():
 matriz = leMatriz()
 N = len(matriz)
 k = input(“Entre com o valor de k : “)
 matriz = muldiago(matriz,k) 
 imprimirMatriz(matriz,N,N)
if __name__ == "__main__":
 main()
Exercício:Exercício:
Escreva uma função para multiplicar os elementos da diagonal principal de uma 
dada matriz por um valor k.
Seu programa deve começar lendo a matriz. Depois, leia o valor de k.
Imprima a matriz resultante.
Computação I - aula 9 - 2012/2 20
Listas - MatrizesExercício:Exercício:
Escreva uma função para computar a linha de maior soma de uma matriz.
Seu programa deve começar lendo a matriz.
Após determinar a linha de maior soma, esta linha deve ser impressa assim como sua soma.
Computação I - aula 9 - 2012/2 21
Listas - MatrizesExercício:Exercício:
Escreva uma função para computar a linha de maior soma de uma matriz.
Seu programa deve começar lendo a matriz.
Após determinar a linha de maior soma, esta linha deve ser impressa assim como sua soma.
 
def leMatriz():
 return input("Entre com a matriz: ")
def imprimirMatriz(matriz,linha,coluna):
 for i in range(linha):
 for j in range (coluna):
 print matriz[i][j],
 print
 return
 
 
 
Computação I - aula 9 - 2012/2 22
Listas - MatrizesExercício:Exercício:
Escreva uma função para computar a linha de maior soma de uma matriz.
Seu programa deve começar lendo a matriz.
Após determinar a linha de maior soma, esta linha deve ser impressa assim como sua soma.
from functools import *
def leMatriz():
 return input("Entre com a matriz: ")
def imprimirMatriz(matriz,linha,coluna):
 for i in range(linha):
 for j in range (coluna):
 print matriz[i][j],
 print
 return
def add(x, y): return x+y
def somalinha(matriz):
 return [reduce(add,linha) for linha in matriz]
Computação I - aula 9 - 2012/2 23
Listas - MatrizesExercício:Exercício:
Escreva uma função para computar a linha de maior soma de uma matriz.
Seu programa deve começar lendo a matriz.
Após determinar a linha de maior soma, esta linha deve ser impressa assim como sua soma.
from functools import *
def leMatriz():
 return input("Entre com a matriz: ")
def imprimirMatriz(matriz,linha,coluna):
 for i in range(linha):
 for j in range (coluna):
 print matriz[i][j],
 print
 return
def add(x, y): return x+y
def somalinha(matriz):
 return [reduce(add,linha) for linha in matriz]
def main():
 matriz = leMatriz()
 linha = len(matriz)
 coluna = len(matriz[0])
 somaDasLinhas = somalinha(matriz)
 maiorSoma = max(somalinha(matriz))
 indiceLinhaDaMatriz = somaDasLinhas.index(maiorSoma)
 imprimirMatriz(matriz,linha,coluna)
 print "A linha de maior soma tem valor : ",maiorSoma
 print "Corresponde a linha : ",matriz[indiceLinhaDaMatriz]
if __name__ == "__main__":
 main()
Computação I - aula 9 - 2012/2 24
Listas - MatrizesExercício:Exercício:
Escreva uma função para computar a linha de maior soma de uma matriz.
Seu programa deve começar lendo a matriz.
Após determinar a linha de maior soma, esta linha deve ser impressa assim como sua soma.
 
def leMatriz():
 return input("Entre com a matriz: ")
def imprimirMatriz(matriz,linha,coluna):
 for i in range(linha):
 for j in range (coluna):
 print matriz[i][j],print
 return
def somalinha(matriz):
 return [sum(linha) for linha in matriz]
def main():
 matriz = leMatriz()
 linha = len(matriz)
 coluna = len(matriz[0])
 somaDasLinhas = somalinha(matriz)
 maiorSoma = max(somalinha(matriz))
 indiceLinhaDaMatriz = somaDasLinhas.index(maiorSoma)
 imprimirMatriz(matriz,linha,coluna)
 print "A linha de maior soma tem valor : ",maiorSoma
 print "Corresponde a linha : ",matriz[indiceLinhaDaMatriz]
if __name__ == "__main__":
 main()
Computação I - aula 9 - 2012/2 25
Listas - MatrizesExercício:Exercício:
Escreva um programa para computar o produto de duas matrizes m1 e 
m2.
Seu programa deve começar lendo as matrizes e verificando se são de 
tamanhos compatíveis para multiplicação.
Em seguida faça o cálculo matemático, imprimindo a matriz final no 
formato tradicional.
Computação I - aula 9 - 2012/2 26
Aula 15 – Estrutura de Dados
continuação
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26

Outros materiais