0
respostas

(05. Estruturas de dados) Desafio: hora da prática

# Questão 1
gastos = [2172.54,3701.35,3518.09,3456.61,3249.38,2840.82,3891.45,3075.26,2317.64,3219.08]
media = sum(gastos) / len(gastos)
print(f'1) Média: R$ {media:.2f}')

# Questão 2
gastos = [2172.54,3701.35,3518.09,3456.61,3249.38,2840.82,3891.45,3075.26,2317.64,3219.08]
acima = [v for v in gastos if v > 3000]
qtd = len(acima)
perc = qtd / len(gastos) * 100
print(f'\n2) {qtd} compras acima de R$3000')
print(f'{perc:.2f}% do total')

# Questão 3
nums = []
for i in range(5):
    nums.append(int(input(f'{i+1}º número: ')))
print(f'\n3) Lista: {nums}')

# Questão 4
nums = []
for i in range(5):
    nums.append(int(input(f'{i+1}º número: ')))
print(f'\n4) Invertida: {nums[::-1]}')

# Questão 5
n = int(input('\n5) Número: '))
primos = []
for num in range(2,n+1):
    div = 0
    for d in range(1,num+1):
        if num % d == 0:
            div += 1
    if div == 2:
        primos.append(num)
print(f'Primos: {primos}')

# Questão 6
dia = int(input('\n6) Dia: '))
mes = int(input('Mês: '))
ano = int(input('Ano: '))
dias = {1:31,2:28,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}
if (ano % 4 == 0 and ano % 100 != 0) or ano % 400 == 0:
    dias[2] = 29
if mes in dias and 1 <= dia <= dias[mes]:
    print(f'{dia}/{mes}/{ano} válida')
else:
    print(f'{dia}/{mes}/{ano} inválida')

# Questão 7
b = [1.2,2.1,3.3,5.0,7.8,11.3,16.6,25.1,37.8,56.9]
cres = []
for i in range(1,len(b)):
    taxa = (b[i] - b[i-1]) / b[i-1] * 100
    cres.append(round(taxa,2))
print(f'\n7) Crescimento: {cres}')

# Questão 8
ids = []
for i in range(10):
    ids.append(int(input(f'{i+1}º ID: ')))
doces = len([x for x in ids if x % 2 == 0])
print(f'\n8) Doces: {doces}')
print(f'Amargos: {len(ids) - doces}')

# Questão 9
gab = ['D','A','C','B','A','D','C','C','A','B']
resp = []
for i in range(10):
    resp.append(input(f'Q{i+1}: ').upper())
nota = 0
for i in range(10):
    if resp[i] == gab[i]:
        nota += 1
print(f'\n9) Nota: {nota}')

# Questão 10
meses = ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez']
temps = []
for mes in meses:
    temps.append(float(input(f'{mes}: ')))
media = sum(temps) / 12
print(f'\n10) Média anual: {media:.2f}')
for i in range(12):
    if temps[i] > media:
        print(f'{meses[i]} acima da média')

# Questão 11
v = {'Produto A':300,'Produto B':80,'Produto C':60,
'Produto D':200,'Produto E':250,'Produto F':30}
print(f'\n11) Total: {sum(v.values())}')
print(f'Mais vendido: {max(v,key=v.get)}')

# Questão 12
v = {'Design 1':1334,'Design 2':982,'Design 3':1751,
'Design 4':210,'Design 5':1811}
ven = max(v,key=v.get)
tot = sum(v.values())
p = v[ven] / tot * 100
print(f'\n12) Vencedor: {ven}')
print(f'{p:.2f}% dos votos')

# Questão 13
s = [1172,1644,2617,5130,5532,6341,6650,7238,7685,7782,7903]
ab = {}
for x in s:
    valor = x * 0.1
    if valor < 200:
        valor = 200
    ab[x] = valor
print(f'\n13) Total gasto: {sum(ab.values()):.2f}')
print(f'Abonos mínimos: {list(ab.values()).count(200)}')
print(f'Maior abono: {max(ab.values()):.2f}')

# Questão 14
a = {'Área Norte':[2819,7236],'Área Leste':[1440,9492],
'Área Sul':[5969,7496],'Área Oeste':[14446,49688],
'Área Centro':[22558,45148]}
for area,val in a.items():
    print(f'\n{area}: {sum(val) / 2:.2f}')
print(f'Maior diversidade: {max(a,key=lambda x:sum(a[x]))}')

# Questão 15
setor = {'Setor A':[22,26,30,30,35,38,40,56,57,65],
'Setor B':[22,24,26,33,41,49,50,54,60,64],
'Setor C':[23,26,26,29,34,35,36,41,52,56],
'Setor D':[19,20,25,27,34,39,42,44,50,65]}
idades = []
for s,i in setor.items():
    m = sum(i) / len(i)
    print(f'\n{s}: {m:.2f}')
    idades.extend(i)
mg = sum(idades) / len(idades)
ac = len([x for x in idades if x > mg])
print(f'\nMédia geral: {mg:.2f}')
print(f'Acima da média geral: {ac}')