bryanmg Posted December 29, 2009 at 06:05 PM Report Share #303016 Posted December 29, 2009 at 06:05 PM Oi Boa Tarde sou iniciante em Python e preciso de ajuda sobre recursividade: Supondo que não existam os operadores de divisão (/ e %). Pede-se então que seja construída uma função que realize esta operação. A função deverá receber como parâmetros três números inteiros: o dividendo, o divisor e o número de casas decimais do resultado da divisão, e deverá retornar o resultado da divisão (o quociente, um número real) do dividendo pelo divisor com o número de casas decimais especificado. A divisão deve ser implementada através de subtrações sucessivas. Encontre na net um código em portugol parecido com isso, mas não sei como implementar em python Pelo Amor de Deus alguém me ajuda!!!!!!!! Função divisaoRec(inteiro num, inteiro den) retorna Inteiro Inicio Se(num < den) Então Função_Retorna(0); Senão Função_Retorna(divisaoRec(num-den, den) + 1); Fim_Se Fim_Funcão Link to comment Share on other sites More sharing options...
djthyrax Posted January 2, 2010 at 04:33 PM Report Share #303685 Posted January 2, 2010 at 04:33 PM Para definires uma função xpto que recebe como elementos a e b fazes: def xpto(a, b): #código Para fazeres um estrutura se...senão fazes: if condicao: #codigo caso a condicao seja verdadeira else: #codigo caso a condicao seja falsa Para retornares o valor que a função retornaria se a fosse a-3 e o b fosse o mesmo: return xpto(a-3, b) Ou para retornar um valor fixo: return 5 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
bryanmg Posted January 2, 2010 at 05:00 PM Author Report Share #303706 Posted January 2, 2010 at 05:00 PM Ficaria assim então? #coding latin -1 def xpto(num, den): if num < den: return 0 else: return xpto (num-den, den) + 1 Link to comment Share on other sites More sharing options...
djthyrax Posted January 2, 2010 at 05:25 PM Report Share #303718 Posted January 2, 2010 at 05:25 PM Sim, esse código é o equivalente em python. 😛 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
pedrosorio Posted January 2, 2010 at 06:48 PM Report Share #303752 Posted January 2, 2010 at 06:48 PM Ficaria assim então? #coding latin -1 def xpto(num, den): if num < den: return 0 else: return xpto (num-den, den) + 1 Atenção que essa função faz a divisão inteira e não a divisão, como é pedido. Não respondo a dúvidas por mensagem. Link to comment Share on other sites More sharing options...
bryanmg Posted January 2, 2010 at 07:51 PM Author Report Share #303767 Posted January 2, 2010 at 07:51 PM Então como eu posso fazer?? Link to comment Share on other sites More sharing options...
pedrosorio Posted January 2, 2010 at 08:02 PM Report Share #303772 Posted January 2, 2010 at 08:02 PM Então como eu posso fazer?? Acho que a ideia do exercício é perceberes como funciona a recursividade e raciocinares nesse âmbito. Repara que tens que receber um parâmetro que te diga quantas casas decimais o resultado deve ter. Vais ter que trabalhar com isso. Se sabes fazer a divisão inteira também consegues fazer a outra porque não passa de uma sequência de divisões inteiras. Não respondo a dúvidas por mensagem. Link to comment Share on other sites More sharing options...
bryanmg Posted January 3, 2010 at 02:49 PM Author Report Share #303850 Posted January 3, 2010 at 02:49 PM Conversei com um amigo e ele me ensinou um outro codigo que ficaria melhor assim: #coding latin -1 def divMod(a, b): if (a >= : (x, y) = divMod(a-b, b) return (1+x, y) else: return (0, a) def divF(a, b, prec): d1, m = divMod(a, b) d2, m2 = divMod(m*10**prec, b) return d1 + d2*(10**(-prec)) Gostaria de saber se ta certo e como eu posso fazer por meio deste codigo para que ele leia um arquivo com dados do pc e ao final da execução seja gerado um arquivo de saida com as respostas, ou seja o arquivo de entrada vai dar as entradas e de sáida as respostas. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now