roberto96fs Posted May 26, 2018 at 10:16 PM Report #610713 Posted May 26, 2018 at 10:16 PM (edited) boa noite, necessito de fazer um programa em python onde faz-se uma divisão através de subtracções sucessivas! nao consigo programar isso nem por nada. tenho ate a resoluçao porem nao consigo coloca-la pra python: 1. Leio A 1.1 Se A=0, informe Divisão=0 e Resto=0 1.2 Se não, vá para 2 2. Leio B 2.1 Se B=0, informe ERRO 2.2 Se não, vá para 3 3. A>0? 3.1 Se sim, C recebe A 3.2 Se não, C recebe │A│ 4. B>0? 4.1 Se sim, D recebe B 4.2 Se não, D recebe │B│ 5. Zera a variável de nome Y 6. C>=D? 6.1 Se sim, vá para 7 6.2 Se não, vá para 8 7. Enquanto C>=D faça: 7.1 C recebe um novo valor, igual a C-D 7.2 Y recebe 1 7.3 Quando C<D, vá para 9 ou 10 8. Quando C<D, informe Quociente=0, Resto=A 9. A>0 9.1 E B>0, informe Y=Quociente, Resto=C 9.2 E B<0, informe –Y=Quociente, Resto=C 10. A<0 11.1 E B<0, informe Y=Quociente, Resto= -C 11.2 E B>0, informe –Y=Quociente, Resto= -C me ajudem por favor!!!! Edited September 8, 2018 at 07:51 AM by pwseo Alterado "subtracção através de divisões sucessivas" para "divisão através de subtracções sucessivas"
pwseo Posted August 15, 2018 at 05:49 PM Report #611603 Posted August 15, 2018 at 05:49 PM @roberto96fs, O que já conseguiste fazer? Já tens aí um algoritmo que consegue resolver o problema que pretendes resolver... Tens alguma dúvida específica sobre como escrever isso em Python? E outra questão: conseguiste perceber o conceito por detrás do algoritmo utilizado?
shumy Posted September 6, 2018 at 05:59 PM Report #611780 Posted September 6, 2018 at 05:59 PM Não será antes divisão por subtrações sucessivas? 1 Report Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!
thoga31 Posted September 7, 2018 at 05:50 PM Report #611783 Posted September 7, 2018 at 05:50 PM (edited) Uma vez que o tópico já vai com tanto tempo, deixo uma possível solução traduzindo directamente o algoritmo proposto. Testado no Ideone. def divisao(a, b): div, res = 0, 0 if b == 0: raise ZeroDivisionError("Divisao por zero") if a != 0: c, d, y = abs(a), abs(b), 0 while c >= d: c -= d y += 1 else: div, res = 0, a if a > 0: div, res = y if b>0 else -y, c else: div, res = y if b<0 else -y, -c return (div, res) Edited September 10, 2018 at 04:23 PM by thoga31 Mudança da classe de erro/excepção 1 Report Knowledge is free!
pwseo Posted September 8, 2018 at 07:50 AM Report #611784 Posted September 8, 2018 at 07:50 AM @thoga31, apenas um pequeno reparo: já existe uma classe ZeroDivisionError que podes utilizar em vez de ValueError para sinalizar a divisão por zero. @shumy tens toda a razão. Como o autor não se pronunciou alterei o título e post de abertura do tópico para reflectir correctamente de que se trata.
thoga31 Posted September 10, 2018 at 04:23 PM Report #611788 Posted September 10, 2018 at 04:23 PM Em 08/09/2018 às 08:50, pwseo disse: já existe uma classe ZeroDivisionError que podes utilizar Obrigado @pwseo. Já editei o código para reflectir a tua dica 😉 Knowledge is free!
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