Baixe o app para aproveitar ainda mais
Prévia do material em texto
EMB5013 - Introdução à Programação de Computadores Profa. Tatiana Renata Garcia Gabarito Lista de exercícios 9 – Vetores e Matrizes 1 – Elabore um algoritmo que leia um conjunto de números inteiros que serão armazenados em uma matriz A com dimensão 10x10. A partir da matriz A o programa deve gerar um vetor com os maiores elementos de cada linha e outro vetor com os menores elementos de cada coluna. ### exercicio 1 ### 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 2 – Elabore um algoritmo que lei um conjunto de números inteiros e armazene em uma matriz A de ordem 5x5 de inteiros e depois manipule e mostre os dados na seguinte ordem: a) Mostre a matriz original; b) Troque a segunda linha da matriz com a quinta linha da matriz (modifique a matriz original); c) Troque a primeira coluna da matriz com a quarta coluna da matriz; d) Mostre a matriz modificada. 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][:] 3 – Escreva um programa em Python que leia um vetor de 100 elementos. O programa deve informar a quantidade de números ímpares existentes no vetor. Lembre que os valores armazenados no vetor serão informados pelo usuário (ou gerados pelo computador). ## 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.' 4 – Faça um programa em Python ou pseudocódigo que leia duas matrizes X e Y, quadradas com ordem n, e faça as seguintes manipulações: a) Gere uma matriz W com os menores elementos entre as matrizes X e Y, ou seja, um elemento Wij possui o menor valor entre os elementos Xij e Yij. Se os elementos forem iguais ambos são o menor valor. b) Gere um vetor com os elementos da diagonal principal da matriz X; c) Encontre a coluna da matriz Y que possui a menor soma do valor de seus elementos dentre todas as colunas da matriz, e mostre qual é a posição dessa coluna. Caso existam somas de colunas iguais considerar a primeira coluna com a ocorrência do valor; ### 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 5 – Mostre qual é a saída gerada pelo programa abaixo (escrito em Python) quando n = 3. Resolva manualmente este exercício e depois verifique o resultado implementando-o em Python. n = input('Digite o valor de n: ') m=[0]*n for i in range(n): m[i]=[0]*n for i in range(n): for j in range(n): if i == 0: m[i][j] = -100 else: m[i][j] = 2*(i+j+1) m[j][i] = m[i][j] print 'M = ', m Solução: M = [[-100, 4, 6], [4, 6, 8], [6, 8, 10]]
Compartilhar