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'

3 opiniões sobre “Exercícios resolvidos em Python

  1. Henrique Cid

    Mto bom!! está me ajudando mto! 😀

     
    Reply
  2. jorge luis

    Suas informações foram muito importante para eu elaborar uma prova de algoritmo e programação.

     
    Reply

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.