Buscar

tarefa 1

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!')

Continue navegando