divisões

exatas e inteiras


Material de apoio para a disciplina Linguagem de Programação da UACSA/UFRPE

Produzido pelo prof. João Pimentel

Rá, por essa você não esperava! Estamos tão acostumados a fazer a divisão completa (15 por 7 dá 2.5) que acabamos esquecendo dessa história de "divisão com resto". Para simplificar, vamos chamar divisões como essa de "divisão inteira".

Será que esse tipo de divisão é útil? Mais pra frente vou explicar (SPOILER: sim!). Mas primeiro vamos ver um exemplo e praticar um pouco, para relembrar bem.

Vamos dividir 52 por 3 🤔 Podemos começar com o 5, pois ele já é maior do que 3. 5 por 3 dá 1 e sobra 2.
Agora baixamos o 2 do dividendo E dividimos o resto parcial (22) por 3, que dá 7.
7 vezes 3 dá 21, então para 22 ainda falta 1, que é o resto. E como 1 é menor do que 3, paramos por aqui.

Se fosse uma divisão "normal" iríamos continuar a divisão usando casas decimais. Mas como estamos fazendo a divisão inteira, o nosso resultado é esse: 17 com resto 1.


Precisa de ajudar para relembrar como se faz a divisão inteira? Clique aqui.

Não sei se você reparou, mas o resultado da divisão inteira tem DOIS componentes: o quociente e o resto.

Sendo assim, na hora de fazer as contas com Python nós vamos precisar de DOIS símbolos diferentes, um para cada componente.

O // (barra barra) é usado para calcular o quociente da divisão inteira.


O % (módulo, representado pelo símbolo da porcentagem) é usado para calcular o resto da divisão inteira.

Então se você encontrar um código assim:
10//3
significa "o quociente da divisão inteira de 10 por 3". Ou seja: a parte inteira (desprezando os decimais) de 10 dividido por 3.
Já se você encontrar um código assim:
10%3
significa "10 módulo 3", ou seja: o resto da divisão inteira de 10 por 3. Ou ainda: quando eu faço a divisão inteira de 10 por 3, sobra quanto?

Eu sei que é estranho, por que quando a gente vê esse % pensa logo em porcentagem. É questão de costume.

¯\_(ツ)_/¯

A propósito, Python não tem um símbolo específico para porcentagem. Se eu quiser calcular uma porcentagem, preciso usar as multiplicações e divisões normais. Por exemplo, 20 por cento de 50 pode ser calculado assim:

50*20/100
ou assim:
50*0.2

Calcule o resultado de

20//6

Calcule o resultado de

20%6

Se ligou?

20//6 dá 3, que é o quociente da divisão inteira

20%6 (20 módulo 6) dá 2, que é o resto da divisão inteira de 20 por 6.

Uma das utilidades desse tipo de divisão é que existem algumas coisas que queremos que sejam sempre inteiras. Por exemplo, você conhece o problema dos 35 camelos 🐪? Ou que tal se você ganhasse a metade de um carro?

Outra utilidade das divisões inteiras é para fazermos contas com data e hora.

Por exemplo, muitas vezes é mais útil saber que 200 minutos equivalem a 3 horas (200//60) e 20 minutos (200%60), do que saber que eles equivalem a 3.33 horas (200/60).

Janaína comprou 20 pirulitos para uma festa com 6 amigos. Ela quer saber quantos vão sobrar, depois que dividi-los igualmente entre todos 🤤

Outra utilidade é para sabermos se dois números são múltiplos ou divisores entre si. Sabendo isso, podemos descobrir se um número é primo ou não. Já os números primos são a base da criptografia que utilizamos para ter segurança na Internet.

Se a divisão inteira de A por B dá resto zero, quer dizer que...

Se A é múltiplo de B, quer dizer que...

Se a divisão inteira de X por 2 dá resto zero, quer dizer que...

Se ligou? o módulo (%) também serve para descobrir se um número é multiplo ou divisor de outro - é só olhar se o resto dá zero.

Consequentemente, dá para descobrir também se um número é par ou ímpar, olhando o resto da divisão dele por 2.

🍎 Qual expressão melhor representa essa situação: "eu tinha 10 maçãs, comi 3, e ganhei mais 5" ?

"40 alunos de programação esperavam pelo elevador na UACSA, que tem capacidade máxima de 12 pessoas. Se em cada viagem os alunos lotarem o elevador, quantos alunos estarão na última viagem?"

☝️ Qual expressão dá a resposta para essa pergunta?



A duração de Matrix é 136 minutos, o que equivale a 2 horas e... quantos minutos?
ZeroDivisionError

Como não é possível dividir um número por zero, também não é possível calcular o resto da divisão de um número por zero. Então o código

print(5%0)

resulta no erro ZeroDivisionError.

FIM


Parabéns, mais uma lição concluída! Comemore! 🎉

Créditos

Foto do meio carro: matéria de Eric Adler e Lynn Horsley

Imagem de calendário com relógio: Paomedia, utilizada sem modificações, com base na licença Attribution 3.0 Unported (CC BY 3.0)

Imagem de pirulito: Webalys

Imagem de cadeado: Nick Roach

Animação de Matrix: autoria desconhecida

Gif de comemoração: Tonton Friends