Perl - Matemática

Perl - Matemática

By lingy | Lingy | 5 Sep 2022


Banner

Uma das coisas mais importantes em qualquer linguagem de programação é seu suporte a operações matemáticas. Com Perl não é diferente: a linguagem oferece suporte a maioria das operações matemáticas que você vai precisar em sua vida acadêmica e profissional, e eu vou comentar aqui as mais básicas, para que você seja capaz de seguir com as próprias pernas.

O Perl dá suporte a diversos tipos de dados numéricos. Abaixo, alguns exemplos de uso:

10 # integer
-10 # negative integer
123.45 # floating point (float)
6.2E2 # scientific notation
0xffff # hexadecimal (starting with "0x")
0377 # octal (starts with "0")
0b100111101 # binary (starts with "0b")
5_232_999_435 # large numbers arranged with underscores

Internamente, no entanto, ele trabalha como se todos os números fossem de ponto flutuante. Ou seja, 1 vira 1.02 vira 2.0, e assim por diante.

O Perl também tem suporte a diferentes funções matemáticas, como soma, subtração, multiplicação, divisão, exponenciação e resto da divisão. Vejamos o que cada um deles faz.

A adição, como o próprio nome diz, se trata de você somar dois números para formar um terceiro. A expressão matemática 23 + 32, por exemplo, tem como resultado 55. Também temos que ter em mente que números negativos também podem ser somados, mas o efeito dessa soma será o mesmo de uma subtração de um inteiro positivo, ou seja, a expressão 32 + (-23) terá como resultado 9. Observe abaixo os exemplos:

print 23 + 32, "\n"; # 55
print 32 + (-23), "\n"; # 9

Agora a subtração. A subtração se trata de fazer a operação inversa da divisão, ou seja, se 23 + 32 = 55, então 55 - 32 = 23. A mesma regra do número negativo prevalece, ou seja, se o número for negativo, a função vai ser alterada, logo, 9 - (-23) = 32. Confira os exemplos abaixo:

print 55 - 32, "\n"; # 23
print 9 - (-23), "\n"; # 32

A multiplicação seria o mesmo que um processo de somas consecutivas, ou seja, 2 * 3 é a mesma coisa que 2 + 2 + 2, ou que 3 + 3. Nesse caso, ter um número negativo na operação só fará que o resultado final seja negativo (ou seja, 2 * -2 = -4), enquanto ter dois números negativos fará o resultado ficar positivo (ou seja, -2 * -2 = 4). Observe os exemplos abaixo:

print 2 * 3, "\n"; # 6
print 2 * -3, "\n"; # -6
print -2 * -3, "\n"; # 6

A divisão é algo um pouco mais complexo. Dividir um número por outro seria encontrar qual número que multiplicado pelo divisor daria o número que foi dividido (sim, o conceito é confuso, mas já vou te dar exemplos). Pense no seguinte: 4 / 2 = 2 porque 2 * 2 = 48 / 2 = 4 porque 4 * 2 = 8, e assim por diante.

Porém, nesse caso, existe uma pequena diferença. E se tentarmos fazer 2 / 4? O resultado, nesse caso, será 0.5, um número de ponto flutuante, e 0.5 * 4 = 2. Olhe os exemplos:

print 4 / 2, "\n"; # 2
print 2 / 4, "\n"; # 0.5
print 8 / 2, "\n"; # 4

Mas e o que é o resto da divisão? Para sabermos isso, teremos que entender o conceito de divisão inteira. Na matemática para computação, existem dois tipos de divisão: a convencional, de ponto flutuante, e a inteira, que trata apenas de números inteiros. Ou seja, enquanto em uma divisão convencional, 2 / 4 = 0.5, em uma divisão inteira seria 2 / 4 = 0. Ok, mas e o resto da divisão? Simples, como a operação de pegar o resto da divisão, em Perl, é definida pelo caractere %, a operação final ficará assim: 2 % 4 = 2.

Esse tipo de operação é usado, por exemplo, para verificar se um número é par ou impar: se o resto da divisão de um número por 2 for 0, o número é par, senão, é ímpar. Veja alguns exemplos:

print 4 % 2, "\n"; # 0
print 4 % 3, "\n"; # 1
print 2 % 5, "\n"; # 2
print 3 % 2, "\n"; # 1
print 3 % 5, "\n"; # 3

print 4 % 2 == 0 ? "true" : "false", "\n"; # true
print 3 % 2 == 0 ? "true" : "false", "\n"; # false
print 2 % 2 == 0 ? "true" : "false", "\n"; # true
print 0 % 2 == 0 ? "true" : "false", "\n"; # true
print 50 % 2 == 0 ? "true" : "false", "\n"; # true

Potenciação (identificada por ** em Perl) se trata de multiplicar um número por ele mesmo x vezes, ou seja, 2 ** 2 é a mesma coisa que 2 * 2, e 2 ** 3 é o mesmo que 2 * 2 * 2. Veja alguns exemplos abaixo:

print 2 ** 2, "\n"; # 4
print 5 ** 2, "\n"; # 25
print 2 ** 3, "\n"; # 8
print 2.5 ** 2, "\n"; # 6.25
print 0.5 ** 5, "\n"; # 0.03125

Agora que temos exemplos de números, que tal tentar algumas operações matemáticas? Vamos começar pelo mais simples. Tente rodar as seguintes fórmulas, e veja seus resultados:

  • 4 ** 3
  • 5 + 4 + 3 + 2 -1
  • 2 / 4
  • 3 * 25
  • 5 % 3

Agora vamos aprender um pouco sobre precedência de operações. Qual o resultado de 1 + 2 * 3? Para alguns, pode ser 9, porque vão calcular primeiro 1 + 2 (que vai dar 3), e depois 3 * 3, que vai dar 9, enquanto para outros o resultado vai ser 7, porque vão calcular primeiro 2 * 3, que vai dar 6, e depois 1 + 6, que vai dar 7. Mas qual é a forma correta? Vamos tentar usando Perl. Rode o seguinte comando no seu shell:

perl -e 'print 1 + 2 * 3, "\n";'

O resultado foi 7, e isso é por causa da precedência de operadores. A precedência em Perl (e na maioria das linguagens) segue a seguinte ordem de precedência:

d7bb002c6afa3a4b5c4625c371cf5589a3f36fb14dee917682897444b1c8f784.png

Os operadores que você não conhece, não se preocupe: você aprenderá nos próximos tutoriais.

E então? Ficou alguma dúvida? Tem alguma crítica, elogio ou comentário? Deixa aí embaixo, sua opinião é muito importante para mim 😄☺️

Material de referência

How do you rate this article?

1



Lingy
Lingy

My personal blog about technology

Publish0x

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.