Baixe o app para aproveitar ainda mais
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.
Compartilhar