Buscar

lista10-funcoes-gabarito

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 5 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

Prévia do material em texto

EMB5013 - Introdução à Programação de Computadores 
Profa. Tatiana Renata Garcia 
Gabarito lista de exercícios 10 – Funções 
 
1 – 
 
def s1(): 
 s = 0 
 for i in range(1,11): 
 if i % 2 == 1: 
 s = s + (float(i)/(i**2)) 
 else: 
 s = s - (float(i)/(i**2)) 
 return s 
 
def s2(): 
 s = 0 
 for i in range(1,51): 
 s = s + ((2*i-1)/float(i)) 
 return s 
 
def s3(n): 
 s = 0 
 for i in range(1, n+1): 
 s = s + (float(i) / (2*i -1)) 
 return s 
 
def s4(n): 
 s = 0 
 for i in range(1,n+1): 
 s = s + (float(i) / (n-i+1)) 
 return s 
 
############## Programa principal 
op = input('escolha serie (1, 2, 3, 4)ou 0 para sair = ') 
while op != 0: 
 if op == 1: 
 x = s1() 
 print x 
 elif op == 2: 
 y = s2() 
 print y 
 elif op == 3: 
 n = input('digite n: ') 
 z = s3(n) 
 print z 
 elif op == 4: 
 n = input('digite n: ') 
 w = s4(n) 
 print w 
 op = input('escolha serie (1, 2, 3, 4)ou 0 para sair = ') 
 
 
 
2 – 
######exerc matrizes 
import random 
 
def cria(n): 
 m = [0]*n 
 for i in range(n): 
 m[i]=[0]*n 
 return m 
 
def cria_preenche(n): 
 mat=[0]*n 
 for i in range(n): 
 mat[i]=[0]*n 
 for i in range(n): 
 for j in range(n): 
 mat[i][j]=random.randint(1,20) 
 return mat 
 
def soma(M1, M2): 
 n = len(M1) #len = quantidade de linhas 
 aux = cria(n) 
 for i in range(n): 
 for j in range(n): 
 aux[i][j] = M1[i][j] + M2[i][j] 
 return aux 
 
def subtrai(M1, M2): 
 n = len(M1) 
 aux = cria(n) 
 for i in range(n): 
 for j in range(n): 
 aux[i][j] = M1[i][j] - M2[i][j] 
 return aux 
 
def maxi(M1,M2): 
 n = len(M1) 
 aux = cria(n) 
 for i in range(n): 
 for j in range(n): 
 if M1[i][j] > M2[i][j]: 
 aux[i][j] = M1[i][j] 
 else: 
 aux[i][j] = M2[i][j] 
 return aux 
 
def mini(M1,M2): 
 n = len(M1) 
 aux = cria(n) 
 for i in range(n): 
 for j in range(n): 
 if M1[i][j] < M2[i][j]: 
 aux[i][j] = M1[i][j] 
 else: 
 aux[i][j] = M2[i][j] 
 return aux 
 
def multi(M1,M2): 
 n = len(M1) 
 aux = cria(n) 
 for i in range(n): #linhas de M1 
 for j in range(n): #colunas de M2 
 ##lembre que aux[i][j] esta inicializado em 0 
 for k in range(n): 
 aux[i][j] = aux[i][j] + M1[i][k] * M2[k][j] 
 return aux 
 
def elimina(M,x): 
 n = len(M) 
 aux = cria(n) 
 for i in range(n): 
 for j in range(n): 
 if i == x or j == x: 
 aux[i][j] = 0 
 else: 
 aux[i][j] = M[i][j] 
 return aux 
 
 
print 'A para criar e preencher X e Y, B para somar,C para 
diminuir,' 
print 'D para matriz MAX, E para matriz MIN, F para multiplicar, 
G para eliminar ou H para sair' 
 
opcao = raw_input() 
 
while opcao != 'H': 
 if opcao == 'A': 
 n = input('dimensao= ') 
 m1 = cria_preenche(n) 
 m2 = cria_preenche(n) 
 print 'M1: ',m1 
 print 'M2: ',m2 
 elif opcao == 'B': 
 m3 = soma(m1,m2) 
 print "M1 + M2 = ", m3 
 elif opcao == 'C': 
 m4 = subtrai(m1,m2) 
 print "M1 - M2: ", m4 
 elif opcao == 'D': 
 m6 = maxi(m1,m2) 
 print "MAX (M1, M2):", m6 
 elif opcao == 'E': 
 m7 = mini(m1,m2) 
 print "MIN (M1, M2): ", m7 
 elif opcao == 'F': 
 m8 = multi(m1,m2) 
 print "M1 * M2 = ", m8 
 elif opcao == 'G': 
 x = input('digite linha que deseja eliminar de M1: ') 
 if x < len(m1): 
 m9 = elimina(m1,x) 
 print "M9: ", m9 
 print 'Digite A para criar e preencher X e Y, B para somar, 
C para diminuir,' 
 print 'D para matriz MAX, E para matriz MIN, F para 
multiplicar, G para eliminar ou H para sair' 
 opcao = raw_input() 
 
 
 
3 – 
 
######## exerc 3 - algumas conversoes 
def c_f(t): #celsius -> farehneit 
 f=(t*1.8)+32 
 return f 
 
def c_k(t): #celsius ->kelvin 
 f=t+273.15 
 return f 
 
def f_c(t): #fahrenheit -> celsius 
 f=(t-32)/1.8 
 return f 
 
def k_c(t): #kelvin -> celsius 
 f=t-273.15 
 return f 
 
 
############# 
t = input('digite temperatuta: ') 
a = raw_input('digite escala atual (C ou F ou K): ') 
b = raw_input('digite escala desejada (C ou F ou K): ') 
 
if a == 'C' and b == 'F': 
 print 'temp: ', c_f(t) 
elif a == 'C' and b == 'K': 
 print 'temp: ', c_k(t) 
elif a == 'F' and b == 'C': 
 print 'temp: ', f_c(t) 
elif a == 'K' and b == 'C': 
 print 'temp: ', k_c(t) 
else: 
 print 'conversao nao implementada...' 
 
 
 
4 e 5 – 
 
def exer4(n): 
 for i in range(1, n+1): 
 for j in range(i): 
 print i, 
 print 
 
def exer5(n): 
 for i in range(1,n+1): 
 for j in range(1, i+1): 
 print j, 
 print 
 
x = input('digite numero: ') 
exer4(x) 
print 
exer5(x)

Continue navegando