Baixe o app para aproveitar ainda mais
Prévia do material em texto
SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE CIÊNCIAS EXATAS E NATURAIS FACULDADE DE COMPUTAÇÃO CURSOS DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO EN05216 - PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO (2021 .1 - T01) PROF: LÍDIO CAMPOS ALUNOS: JONATHAN JOSÉ C. DE SALES & ISAAC N. BARROS GOMES TAREFA 1 – Paradigma Imperativo - Data de Entrega 13/04/21 – ALOCAÇÃO DINÂMICA DE LISTAS 1) def cria_matriz(n_linhas, n_colunas): matriz = [] for i in range(n_linhas): linha = [] for j in range(n_colunas): linha.append(0) matriz.append(linha) return matriz def tamanho_matriz(matriz): linhas = len(matriz) colunas = len(matriz[0]) return linhas, colunas def prencher_matriz(matriz): n_linhas, n_colunas = tamanho_matriz(matriz) for l in range(0, n_linhas): for c in range(0, n_colunas): matriz[l][c] = int(input(f'A[{l}][{c}]: ')) return matriz def verificar_repetidos(matriz): n_linhas, n_colunas = tamanho_matriz(matriz) cont1 = 0 cont2 = 0 while (cont2!=n_linhas) and (cont1!=n_colunas): if(cont1==n_colunas): cont1=0 x = matriz[cont2][cont1] for l in range(0, n_linhas): for c in range(0, n_colunas): if (cont2==l) and (cont1==c): continue else: if(x==matriz[l][c]): return True if (cont1<n_colunas): cont1+=1 else: cont2+=1 return False print('Dada a matriz Amxn') m = int(input('Valor de m: ')) n = int(input('Valor de n: ')) A = cria_matriz(m,n) A = prencher_matriz(A) print('-='*30) if verificar_repetidos(A): print('Matriz possui elementos repetidos') else: print('Matriz não possui elementos repetidos') 2) #2 def calculo_custo(matriz, custo): n = len(custo) i = 0 soma = 0 while(i<n-1): soma = soma + matriz[custo[i]][custo[i+1]] i = i+1 return soma itinerarios = [] n = int(input('Quantidade de itinerarios: ')) for i in range(n): itinerarios.append(int(input(f'Numero da cidade {i+1}: '))) # [0, 3, 1, 3, 3, 2, 1, 0] A = [[4,1,2,3],[5,2,1,400],[2,1,3,8],[7,1,2,5]] #ou pode ser usado a função criar_matriz e prencher_matriz da #questão anterior para utilizar outros valores custo_total = calculo_custo(A, itinerarios) #2 print('Custo total do itinerário:',custo_total) #resultado: 417 3) A = [1, 0, 0, 1] ### A^3 arrayAoCubo = [i * 3 for i in A] print(arrayAoCubo) ### A^2 - 2A + I arrayAoQuadrado = [j * 2 for j in A] arrayVezesDois = [k * 2 for k in A] arrayIdentidade = A arrayResultado = [x - y + z for x, y, z in zip(arrayAoQuadrado, arrayVezesDois, arrayIdentidade)] ### Resultado: [1, 0, 0, 1] print(arrayResultado) 4) A = [1, 1 / 2, 1 / 3, 1 / 4, 1, 1 / 5, 1 / 6, 1 / 7, 1] k = 1 while True: arrayInfinito = [i * k for i in A] k += 1 for x in range(len(A)): print(arrayInfinito[x]) 5) def imprimeMatriz(matriz): for i in range(1,len(matriz)-1): for j in range(1,len(matriz[i])-1): print("%2d" %matriz[i][j], end = " ") print() print('Dada a matriz Amxn') m = int(input('Valor de m: ')) n = int(input('Valor de n: ')) print('Digite os elementos da matriz de tamanho %dx%d:' %(m,n)) A = [[-1] * (n+2)] for i in range(1, m+1): A.append([-1]) for j in range(1,n+1): elemento = int(input("Elemento A%dx%d da matriz: " %(i,j))) A[i].append(elemento) A[i].append(-1) A.append([-1] * (n+2)) cont = 1 for i in range(1,m+1): for j in range(1,n+1): if A[i][j] == 0 and ( (A[i][j-1] == -1 and A[i][j+1] == 0) \ or (A[i-1][j] == -1 and A[i+1][j] == 0)): A[i][j] = cont cont += 1 print('O resultado da matriz é:') imprimeMatriz(A) 6) def cria_matriz(n): matriz = [] for i in range(n): linha = [] for j in range(n): linha.append(0) matriz.append(linha) return matriz #a def prenche_matriz_simetrica(matriz): n = len(matriz) print('Digite os valores da matriz simetrica') for l in range(n): for c in range(l+1): matriz[l][c] = (input(f'M[{l}][{c}]: ')) matriz[c][l] = matriz[l][c] return matriz #b def mostra_matriz(matriz): n = len(matriz) for l in range(0, n): for c in range(0, n): print(f'{matriz[l][c]:3}', end='') print() n = int(input('Ordem da matriz: ')) while (n < 1): print('Ordem deve ser maior que 0!!!') n = int(input('Digite novamente a ordem da matriz: ')) A = cria_matriz(n) A = prenche_matriz_simetrica(A) #a mostra_matriz(A) #b 7) def criar_matriz_prenchida(n): matriz = [] print('Digite os valores da matriz') for l in range(n): matriz.append([]) for c in range(n): matriz[l].append(input(f'M[{l}][{c}]: ')) return matriz def tamanho_matriz(matriz): linhas = len(matriz) colunas = len(matriz[0]) return linhas, colunas #7 def verificacao_permutacao(matriz): n = len(matriz) for l in range(n): cont1 = 0 cont2 = 0 for c in range(n): if (matriz[l][c] == 0): cont1+=1 else: if (matriz[l][c] == 1): cont2+=1 else: return False if (cont1 != n - 1) or (cont2 != 1): return False for c in range(n): cont1 = 0 cont2 = 0 for l in range(n): if (matriz[l][c] == 0): cont1 += 1 else: if (matriz[l][c] == 1): cont2 += 1 else: return False if (cont1 != n - 1) or (cont2 != 1): return False return True n = int(input('Ordem da matriz: ')) while (n < 1): print('Ordem deve ser maior que 0!!!') n = int(input('Digite novamente a ordem da matriz: ')) A = criar_matriz_prenchida(n) if verificacao_permutacao(A): #7 print('Matriz é de permutação!') else: print('Matriz não é de permutação!')
Compartilhar