Jump to content

Recommended Posts

Posted (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 by pwseo
Alterado "subtracção através de divisões sucessivas" para "divisão através de subtracções sucessivas"
  • 2 months later...
Posted

@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?

  • 4 weeks later...
Posted (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 by thoga31
Mudança da classe de erro/excepção
  • Vote 1

Knowledge is free!

Posted

@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.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.