Exercícios resolvidos em Python
Diversos exercícios resolvidos e explicados em vídeo. São algoritmos em linguagem Python e envolvendo o uso de funções, vetores e matrizes.
Exercício 1: faça um algoritmo que solicite ao usuário números e os armazene em um vetor de 30 posições. Crie uma função que recebe o vetor preenchido e substitua todas as ocorrência de valores positivos por 1 e todos os valores negativos por 0.
def troca(vet):
for i in range(3):
if vet[i] >= 0:
vet[i] = 1
else:
vet[i] = 0
return vet
vet = [0]*3
for i in range(3):
vet[i] = input('Digite um valor: ')
print vet
troca(vet)
print vet
Exercício 2: crie uma função que retorne o valor da expressão: 2/3 + 3/5 + 4/7 + 5/9 + … + n/m, para um valor de n definido pelo usuário. Verifique se o valor de n definido pelo usuário é positivo e, caso não seja, solicite outro valor até ser fornecido um valor positivo.
def sequ(n):
aux1 = 2
aux2 = 3.0
soma = 0
while aux1 <= num:
print aux1, aux2
soma = soma + aux1/aux2
aux1 = aux1 + 1
aux2 = aux2 + 2
return soma
num = input('Digite um valor: ')
while num < 0:
num = input('Digite um valor positivo: ')
res = sequ(num)
print res
Exercício 3: Faça um algoritmo que solicite ao usuário números e os armazene em um vetor de 20 posições. Crie uma função que recebe o vetor preenchido e substitua todas as ocorrências de valores negativos por zero, as ocorrências de valores menores do que 10 por 1 e as demais ocorrências por 2.
def altera(vet, tam):
for i in range(tam):
if vet[i] < 0:
vet[i] = 0
elif vet[i] < 10:
vet[i] = 1
else:
v[i] = 2
return vet
tam = 39
v = [0]*tam
for i in range(tam):
v[i] = input('Digite um valor: ')
altera(v,tam)
print v
Exercício 4: crie um algoritmo que solicite 3 valores que representarão os lados de um triângulo. Considere que não importa a ordem que serão fornecidos os valores, podendo ser fornecido primeiro a hipotenusa e depois os catetos, ou primeiro os catetos e depois a hipotenusa, etc. Crie também uma função que recebe o vetor e retorna se os lados informados formam um triângulo retângulo. Você pode utilizar o teorema de Pitágoras para auxiliar na resolução: hiponusa2 = cateto12 + cateto22.
import math
def triangret(vet):
if vet[0] > vet[1] and vet[0] > vet[2]:
hip = vet[0]
cat1 = vet[1]
cat2 = vet[2]
elif vet[1] > vet[0] and vet[1] > vet[2]:
hip = vet[1]
cat1 = vet[0]
cat2 = vet[2]
else:
hip = vet[2]
cat1 = vet[0]
cat2 = vet[1]
print hip, cat1, cat2
if hip == math.sqrt(cat1**2 + cat2**2):
return 1
else:
return 0
vet = [0]*3
for i in range(3):
vet[i] = input('Digite um valor: ')
if triangret(vet) == 1:
print 'É retangulo'
else:
print 'Não é retangulo'
Exercício 5: faça um algoritmo que solicite ao usuário números e os armazene em uma matriz 6×6. Em seguida, crie um vetor que armazene os elementos da diagonal principal da matriz.
vet = [0]*6
mat = [0]*6
for x in range(6):
mat[x] = [0]*6
for lin in range(6):
for col in range(6):
mat[lin][col] = input('Digite um valor: ')
print mat
for lin in range(6):
for col in range(6):
print lin,col
if lin == col:
print 'DP', lin, col
vet[lin] = mat[lin][col]
print vet
Exercício 6: tendo uma matriz 10×10 preenchida com valores aleatórios entre 10 e 50, mostre a média dos elementos da diagonal secundária.
import random
tam = 10
m = [0]*tam
for i in range(tam):
m[i] = [0]*tam
for i in range(tam):
for j in range(tam):
m[i][j] = random.randint(10,50)
aux = tam-1
soma = 0
for i in range(tam):
soma = soma + m[i][aux]
aux = aux - 1
for i in range(tam):
print m[i][:]
print 'Média: ', soma/float(tam)
Exercício 7: tendo uma matriz 10×10 preenchida com valores aleatórios entre 10 e 50, mostre qual é o maior valor existente na matriz desconsiderando os elementos da diagonal principal.
import random
mat = [0]*3
for i in range(3):
mat[i] = [0]*3
for i in range(3):
for j in range(3):
mat[i][j] = random.randint(10,50)
print mat
maior = mat[1][0]
for i in range(3):
for j in range(3):
if i != j:
if mat[i][j] > maior:
maior = mat[i][j]
print maior
Exercício 8: tendo uma matriz 5×5 preenchida com valores aleatórios entre 0 e 99, mostre qual é o segundo maior valor existente na matriz.
import random
tam = 5
mat = [0]*tam
for i in range(tam):
mat[i] = [0]*tam
print mat
for i in range(tam):
for j in range(tam):
mat[i][j] = random.randint(0, 99)
print mat
maior = mat[0][0]
for i in range(tam):
for j in range(tam):
if mat[i][j] > maior:
maior = mat[i][j]
print maior
segundomaior = 0
for i in range(tam):
for j in range(tam):
if mat[i][j] > segundomaior and mat[i][j] != maior:
segundomaior = mat[i][j]
print segundomaior
Exercício 9: crie um algoritmo que leia um valor e a partir disso faça: (1) se o valor for 1, 2 ou 3, mostre o valor elevado ao quadrado; (2) se o valor for o número 4 ou 9, mostre a raiz quadrada do número; (3) se for os valores 6, 7 e 8, mostre o valor dividido 9.
import math
num = input('Digite um valor: ')
if num >= 1 and num <= 3:
print num**2
elif num == 4 or num == 9:
print math.sqrt(num)
elif num == 6 or num == 7 or num == 8:
print num/9.0
Exercício 10: crie um algoritmo que leia um valor e a partir disso faça: (1) se for um valor negativo, mostre o módulo (valor sem sinal) do valor; (2) se for um valor maior do que 10, solicite outro valor e mostre a diferença entre eles; (3) Caso o valor não seja de nenhuma condição anterior, mostre o valor dividido por 5.
num = input('Digite um valor: ')
if num < 0:
print num * -1
elif num > 10:
num2 = input('Digite outro valor: ')
print num - num2
else:
print num/5.0
Exercício 11: crie um algoritmo que leia um valor e a partir disso faça: (1) se o valor for 1 e 2, mostre o valor elevado ao cubo; (2) se o valor for múltiplo de 3 mostre o fatorial desse número; (3) se o valor for os valores 4, 5, 7 ou 8, mostre o valor dividido 9. Caso não seja nenhum dos valores, informe como “valor inválido”.
import math
num = input('Digite um valor: ')
if num == 1 or num == 2:
print num**3
elif num%3 == 0:
print math.factorial(num)
elif num == 4 or num == 5 or num ==7 or num == 8:
print num/9.0
else:
print 'Valor inválido'
Mto bom!! está me ajudando mto! 😀
Suas informações foram muito importante para eu elaborar uma prova de algoritmo e programação.
top