ExerciciosFuncoesSolucoes

Exercícios com Funções: Proposta de Soluções

Esta página contém algumas propostas de soluções para os exercícios da Lista 6: Funções.

* Exercício 2 valor = []

def nesima(n):

Por Diel Jr

   1 def imprimeLinha(numero):
   2     for n in range(1, numero + 1):
   3         print(('  {} ').format(n), end='')
   4     print()
   5 
   6 def imprimeSequencia(numero):
   7     for numero in range(numero + 1):
   8         imprimeLinha(numero)
   9 
  10 
  11 numero = input('Digite um número: ')
  12 imprimeSequencia(int(numero))

   1 def hora(h, m):
   2     b = h / 12
   3     if b <= 1:
   4         hh = str(h)
   5         print('Sua hora: '+ hh + ':', end='')
   6     elif b > 1 and b < 2:
   7         hhh = str(h - 12)
   8         print('Sua hora: '+ hhh + ':', end='')
   9     else:
  10         print('Formato de hora invalido')
  11     if b <= 1 and m <= 60:
  12         print(m, 'a.m')
  13     elif b > 1 and m <= 60:
  14         print(m, 'p.m')
  15     else:
  16         print('Formato de minutos invalidos')
  17 
  18 while True:
  19     print('digite 666 para sair')
  20     h = int(input('Informe a hora:'))
  21     if h == 666:
  22         break
  23     m = int(input('Informe os minutos: '))
  24     hora(h, m)

Proposta por Leo Araujo

   1 listpm = [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
   2 listam = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 00]
   3 
   4 def conversorhorario():
   5     h = int(input('Digite a hora: '))
   6     m = int(input('Digite os minutos: '))
   7     if h in listam:
   8         print(f'São {h}:{m} AM')
   9     elif h in listpm:
  10         idx = listpm.index(h)
  11         print(f'São {listam[idx]}:{m} PM')
  12     elif h > 23 and m > 59:
  13         print('Hora não reconhecida.')
  14 
  15 conversorhorario()

Proposta por EuTone

   1 def valorPagamento():
   2     diario = []
   3 
   4     while True:
   5         val = float(input('Valor da prestação: '))
   6         atr = int(input('Dias atrasados: '))
   7         multa = 0.03
   8         multa_dia = 0.001 * atr
   9         total = int(val+(val*multa_dia)+(val*multa))
  10         print(f'O valor a ser pago é R${total}.')
  11         diario.append(total)
  12 
  13         continuar = input('Cotinuar? S/N: ').upper()
  14         if continuar == 'N':
  15             break
  16         
  17     print(f'As prestações pagas de hoje foram {diario}')
  18     print('Encerrado')
  19 
  20 valorPagamento()

Proposta por EuTone

   1 qtPrest = []
   2 listaVc = []
   3 ct = 0
   4 def funcVP(VP, NumDias):
   5     Vpm = VP * 1.03
   6     valorC = round(Vpm *((1 + 0.001) ** NumDias), 2)
   7     listaVc.append(valorC)
   8     print('Valor corrigido:', valorC)
   9     global ct
  10     ct += 1
  11     qtPrest.append(ct)
  12 
  13 while True:
  14     VP = float(input('Digitr o valor da prestação: (0 para sair) '))
  15     if VP == 0:
  16         break
  17     NumDias = int(input('Quantos dias que está em atraso: '))
  18     funcVP(VP, NumDias)
  19 print('Quantidade de prestações pagas: ', ct)
  20 print('Valor total de prestações pagas no dia: R$', round(sum(listaVc)), 2)

Proposta por Leo Araujo

* Exercício 9:

   1 def reverso():
   2 
   3     num = int(input('Digite um número: '))
   4     rev = str(num)
   5     print(num, rev[::-1])
   6 
   7 reverso() 

Proposta por EuTone

   1 from random import randint
   2 k = 0
   3 
   4 def craps():
   5     k = randint(2,13)
   6     if k == 7 or k == 11:
   7         print('Você é o mestre!! Ganhou!!', k)
   8     elif k == 2 or k == 3 or k == 12:
   9         print('Craps!!! Você perdeu!', k)
  10     elif k in range(4,6) or k in range(8,10):
  11         print('Esse é o seu numero vamos jogar!! Numero:', k)
  12         print('Digite D para jogar o dado: ')
  13         z = 0
  14         while k != z:
  15             print('Digite D para jogar o dado:')
  16             s = input()
  17             if s == 'D':
  18                 z = randint(2,13)
  19                 print('Seu numero foi: ', z)
  20                 if z == 7:
  21                     print('Voce Perdeu!!!')
  22                     break
  23         if  z != 7:
  24             print('Voce Ganhou!!!')
  25 craps()

Proposta por Leo Araujo

   1 from random import randint
   2 def craps():
   3     #Função para jogar os dados 
   4     def jogar():
   5         dado1 = randint(1, 6)
   6         dado2 = randint(1, 6)
   7         print(f'DADO AMARELO {dado1} e DADO AZUL {dado2} e SOMA {dado2 + dado1}')
   8         return dado1 + dado2
   9 
  10     cont = ganho = perda = 0
  11     while True:
  12         a = input('jogar: ')
  13         if a in "nN": break
  14         valor = jogar()
  15         
  16         if cont == 0 and valor == 7 or valor == 11:
  17             print('come-out roll GANHOOOOUUU')
  18             ganho += 1
  19             cont = 0
  20         elif cont == 0 and valor == 2 or valor == 3 or valor == 12:
  21             print('come-out roll PERDEEEEUUUU')
  22             cont = 0
  23             perda += 1
  24         elif cont == 0:
  25             passLine = valor
  26             cont = 1
  27             print('jogue mais uma vez')
  28             continue
  29         elif cont == 1:
  30             if passLine == valor:
  31                 print('Pass line  GANHOOOOUUU')
  32                 ganho += 1
  33                 
  34             else:
  35                 print('PERDEEEEUUUU \nTenta novamente')
  36                 perda += 1
  37             cont = passLine = 0
  38         print('-*' * 15)
  39     print('OBRIGADO POR SE DIVERTIR COM CRAPS EM NOSSO CASSINO')
  40     print(f'você ganhou {ganho} e perdeu {perda}')
  41 
  42 craps()

Proposta por JeandroBrito

   1 def dataExtenso(data):
   2     meses = [(), ['janeiro', 31], ['fevereiro', 29], ['março', 31], ['abril', 30],
   3              ['maio', 31], ['junho', 30], ['julho', 31], ['agosto', 31], ['setembro', 30],
   4              ['outubro', 31], ['novembro', 30], ['dezembro', 31]]
   5 
   6     data = data.split('/')
   7     dia, mes, ano = int(data[0]), int(data[1]), int(data[2])
   8     if mes == 2:
   9         meses[mes][1] = anoBissexto(ano)
  10     if 0 < mes < 13 and 0 < dia <= meses[mes][1]:
  11         print(f'{dia} de {meses[mes][0]} de {ano}')
  12     else:
  13         print('NULL')
  14 
  15 #verifica se ano é bissexto
  16 def anoBissexto(ano):
  17     if ano % 400 == 0 or ano % 4 == 0 and ano % 100 != 0:
  18         return 29
  19     else:
  20         return 28
  21 
  22 dataExtenso('29/2/2020')
  23 dataExtenso('29/2/2021')

Proposta por JeandroBrito

* Exercício 13

   1 def primeria_linha_coluna(linha, coluna):
   2     contC = 0
   3     contL = 0
   4     c = ''
   5     l = ''
   6     while (contL < linha) and (contC < coluna):
   7         if contL == 0:
   8             l = '+'
   9             for i in range(coluna):
  10                 c += '-'
  11             l = '+'
  12         contL += 1
  13         contC += 1
  14     print(l+c+l)
  15     
  16 def outras_linhas(linha, coluna):
  17     contC = 0
  18     contL = 0
  19     c = ''
  20     l = ''
  21     while contL < linha:
  22         if contL == 0:
  23             l = '|'
  24             for i in range(linha):
  25                 c += ' '
  26             l = '|'
  27         contL += 1
  28         contC += 1
  29         print(l+c+l)
  30 
  31 def ultima_linha(linha, coluna):
  32     contL = 0
  33     contC = 0
  34     l = ''
  35     c = ''
  36     while (contL < linha) and (contC < coluna):
  37         if contL == 0:
  38             l = '+'
  39             for i in range(coluna):
  40                 c += '-'
  41             l = '+'
  42         contL += 1
  43         contC += 1
  44     print(l+c+l)
  45         
  46     
  47     
  48 linha = int(input('Informe o número de linhas: '))
  49 coluna = int(input('Informe o número de colunas: '))
  50 
  51 primeria_linha_coluna(linha, coluna)
  52 outras_linhas(linha, coluna)
  53 ultima_linha(linha, coluna)

Proposto por Diel Junior

* Exercício 14. Um quadrado mágico é aquele dividido em linhas e colunas, com um número em cada

* Exercício 14.

   1 from itertools import combinations, permutations
   2 
   3 
   4 def validaTabela(tabela): # Verifica se a tabela é válida
   5     if sum(tabela[:3]) == sum(tabela[3:6]) == sum(tabela[6:10]):
   6         if sum(tabela[::3]) == sum(tabela[1::3]) == sum(tabela[2::3]):
   7             if sum(tabela[::4]) == sum(tabela[2:8:2]):
   8                 print(tabela, ' valida ')
   9                 return 1
  10             else: return 0
  11         else: return 0
  12     else:
  13         return 0
  14 
  15 
  16 def gera(tab): #gerar as matrizes possíveis
  17     cont = 0
  18     validos = 0
  19     for i in permutations(tab,9):
  20         cont += 1
  21         validos += validaTabela(i)
  22     print(f'total de verificações {cont} e matriz válidas {validos}')
  23 
  24 tabela = [1,2,3,4,5,6,7,8,9]
  25 
  26 gera(tabela)

ExerciciosFuncoesSolucoes (editada pela última vez em 2023-01-09 00:52:44 por EuTone)