Exercicio 1 - Caixa Eletrônico

Você está desenvolvendo o sistema de um caixa eletrônico para um banco. O cliente do banco fornece ao caixa quanto dinheiro deseja retirar e o caixa deve liberar o valor utilizando as cédulas disponíveis. Por exemplo, no caso de um caixa que tenha apenas notas de 10, 20 e 50 reais, um usuário que solicita o saque de 180 reais deve receber 3 notas de 50, 2 notas de 20 e 1 nota de 10.

Escreva a função CaixaEletronico cujo paramêtro de entrada é o valor a ser sacado. A função deve retornar o número de notas de cada valor devolvidas, em ordem decrescente do valor da nota. O caixa deve devolver o menor número possível de células que contemplem o valor solicitado. Considere que o caixa eletrônico tenha notas de 50, 20, 10, 5 e 1. Dica: utilize os operadores // e %.


In [1]:
def CaixaEletronico(valor):
    notas50 = valor // 50
    valor = valor % 50
    notas20 = valor // 20
    valor = valor % 20
    notas10 = valor // 10
    valor = valor % 10
    notas5 = valor // 5
    valor = valor % 5
    notas1 = valor // 1
    return (notas50, notas20, notas10, notas5, notas1)
    
CaixaEletronico(184)


Out[1]:
(3, 1, 1, 0, 4)

Exercicio 2 - Juros Compostos

O regime de juros compostos é o mais comum no sistema financeiro e portanto, o mais útil para cálculos de problemas do dia-a-dia. Os juros gerados a cada período são incorporados ao principal para o cálculo dos juros do período seguinte:

$$montante \cdot (1+\frac{taxa}{100}))^{meses}$$

Escreva a função JurosCompostos, cujas entradas são: o valor do montante original, a taxa de juros ao mês da aplicação (em %) e o número de meses da aplicação. A função deve retornar o montante total corrigido e o valor total da taxa dos juros compostos aplicados sobre o montante original (em %).


In [2]:
def JurosCompostos(montante,taxa,meses):
    correcao = 1
    for i in range(meses):
        correcao *= (1+(taxa/100))
    return montante*correcao, (correcao - 1)*100
print(JurosCompostos(1000,1,12))


(1126.8250301319697, 12.682503013196978)

Exercicio 3 - Imposto de renda

Sobre o salário bruto de um trabalhador incide contribuções e impostos. Os mais comuns são a contribuição para a aposentadoria e o imposto de renda. A base de cálculo do imposto de renda considera o salário bruto descontado das contribuições da aposentadoria. Considere que a alíquota da contribuição para aposentadoria seja de 11% sobre o total do salário bruto, independentemente do valor recebido durante o ano. Considere ainda que sobre a base de cálculo anual para o imposto de renda, para o valor de até 24 mil reais por ano, o trabalhador é isento de Imposto de renda. Somente sobre o que ultrapassar esse valor, será cobrado 15% a título de imposto de renda.

Escreva a função ImpostoRenda cuja entrada é o valor do salário bruto anual e cuja saída é o valor líquido recebido durante o ano.


In [16]:
def ImpostoRenda(salario):
    salario = salario * 0.89
    if (salario <= 24000):
        return salario
    else:
        return salario - (0.15 * (salario-24000))
print(ImpostoRenda(30000))


26295.0

Exercício 4 - Somatória

Crie a função Soma que permita o calculo da seguinte somatória: −1 + 2 − 3 + 4 − 5 + 6 + · · · + N

A função soma deve ter como parâmetro de entrada o número N e a saída igual a somatória acima.


In [18]:
def Soma(n):
    soma = 0
    for i in range(1,n+1):
        soma = soma + i*( (-1)**i)
    return soma
print(Soma(10))


5

Exercicio 5 - Palíndromo

Fazer uma função Palíndromo que receba como parâmetro de entrada uma string e retorne True se ela for palíndroma e False, caso contrário. Uma string é dita palíndromoa se ela é igual lida da esquerda para a direita e vice-versa. Exemplos: RADAR é palíndroma e PYTHON não é.


In [22]:
def Palindromo(nome):
    n = len(nome)
    k = 0
    while k<n/2:
        if nome[k] != nome[n-k-1]:
            return False
        k = k+1
    return True
print(Palindromo('RADAR'))
print(Palindromo('Python'))


True
False

Exercício 6 - Menor e maior da lista

Crie a função MaiorMenor, que dada uma lista de números como entrada, retorne o maior e menor elemento dessa lista.


In [24]:
def MaiorMenor(lista):
    menor = lista[0]
    maior = lista[0]
    for elemento in lista:
        if elemento > maior:
            maior = elemento
        if elemento < menor:
            menor = elemento
    return maior, menor
lista = [1,2,4,16,32,64,-128]
print(MaiorMenor(lista))


(64, -128)

Exercício 7 - N-ímpares consecutivos

Sabe-se que um número da forma $n^3$ é igual a soma de $n$ ímpares consecutivos:

$$1^3 = 1, 2^3 = 3+5, 3^3 = 7+9+11, 4^3 = 13+15+17+19,...$$

Crie uma função que determine os $n$ ímpares consecutivos de $n^3$.


In [5]:
def Consecutivos(n):
    soma = 0
    for i in range(1,n+1):
        soma += i
    impares = [x for x in range(2*soma) if x%2!=0 ]
    return impares[soma-n:soma]

print(Consecutivos(4), sum(Consecutivos(4)), 4**3)


([13, 15, 17, 19], 64, 64)

In [1]:
type( (1,2))


Out[1]:
tuple

In [ ]: