Pascal - Operadores
Um operador é um símbolo que diz ao compilador para realizar manipulações matemáticas ou lógicas específicas. Pascal permite os seguintes tipos de operadores -
- Operadores aritméticos
- Operadores relacionais
- Operadores booleanos
- Operadores de bits
- Operadores de conjunto
- Operadores de string
Vamos discutir os operadores aritméticos, relacionais, booleanos e de bits um por um. Discutiremos os operadores de conjunto e as operações de string posteriormente.
Operadores aritméticos
A tabela a seguir mostra todos os operadores aritméticos suportados pelo Pascal. Assumir variávelA contém 10 e variável B contém 20, então -
Mostrar exemplos
| Operador | Descrição | Exemplo |
|---|---|---|
| + | Adiciona dois operandos | A + B dará 30 |
| - | Subtrai o segundo operando do primeiro | A - B dará -10 |
| * | Multiplica ambos os operandos | A * B dará 200 |
| / | Divide numerador por denominador | B / A dará 2 |
| % | Operador de Módulo e o restante após uma divisão inteira | B% A dará 0 |
Operadores Relacionais
A tabela a seguir mostra todos os operadores relacionais suportados por Pascal. Assumir variávelA contém 10 e variável B contém 20, então -
Mostrar exemplos
| Operador | Descrição | Exemplo |
|---|---|---|
| = | Verifica se os valores dos dois operandos são iguais ou não, se sim, a condição torna-se verdadeira. | (A = B) não é verdade. |
| <> | Verifica se os valores de dois operandos são iguais ou não, se os valores não são iguais, a condição torna-se verdadeira. | (A <> B) é verdade. |
| > | Verifica se o valor do operando esquerdo é maior que o valor do operando direito, se sim, a condição torna-se verdadeira. | (A> B) não é verdade. |
| < | Verifica se o valor do operando esquerdo é menor que o valor do operando direito, se sim, a condição torna-se verdadeira. | (A <B) é verdade. |
| > = | Verifica se o valor do operando esquerdo é maior ou igual ao valor do operando direito, se sim, a condição torna-se verdadeira. | (A> = B) não é verdade. |
| <= | Verifica se o valor do operando esquerdo é menor ou igual ao valor do operando direito, se sim, a condição torna-se verdadeira. | (A <= B) é verdadeiro. |
Operadores booleanos
A tabela a seguir mostra todos os operadores booleanos suportados pela linguagem Pascal. Todos esses operadores trabalham em operandos booleanos e produzem resultados booleanos. Assumir variávelA é verdadeiro e variável B é falso, então -
Mostrar exemplos
| Operador | Descrição | Exemplo |
|---|---|---|
| e | Operador booleano AND chamado. Se ambos os operandos forem verdadeiros, a condição se torna verdadeira. | (A e B) é falso. |
| e depois | É semelhante ao operador AND, mas garante a ordem em que o compilador avalia a expressão lógica. Os operandos da esquerda para a direita e os da direita são avaliados apenas quando necessário. | (A e então B) é falso. |
| ou | Operador Booleano OU chamado. Se qualquer um dos dois operandos for verdadeiro, a condição se torna verdadeira. | (A ou B) é verdade. |
| se não | É semelhante ao booleano OR, porém, garante a ordem em que o compilador avalia a expressão lógica. Os operandos da esquerda para a direita e os da direita são avaliados apenas quando necessário. | (A ou então B) é verdadeiro. |
| não | Operador booleano NOT chamado. Usado para reverter o estado lógico de seu operando. Se uma condição for verdadeira, o operador lógico NOT a tornará falsa. | não (A e B) é verdade. |
Operadores de bits
Operadores bit a bit trabalham em bits e executam operações bit a bit. Todos esses operadores trabalham em operandos inteiros e produzem resultados inteiros. A tabela verdade para bit a bit e (&), bit a bit ou (|) e bit a bit não (~) são as seguintes -
| p | q | p & q | p | q | ~ p | ~ q |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 |
| 1 | 0 | 0 | 1 | 0 | 1 |
Suponha que A = 60; e B = 13; agora em formato binário serão os seguintes -
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A ^ B = 0011 0001
~ A = 1100 0011
Os operadores bit a bit suportados pelo Pascal estão listados na tabela a seguir. Suponha que a variável A tenha 60 e a variável B tenha 13, então:
Mostrar exemplos
| Operador | Descrição | Exemplo |
|---|---|---|
| E | O operador Binário AND copia um bit para o resultado se ele existir em ambos os operandos. | (A e B) dará 12, que é 0000 1100 |
| | | O operador binário OR copia um bit se ele existir em qualquer operando. | (A | B) dará 61, que é 0011 1101 |
| ! | O operador binário OR copia um bit se ele existir em qualquer operando. É o mesmo que | operador. | (A! B) dará 61, que é 0011 1101 |
| ~ | O operador de complemento binários é unário e tem o efeito de 'inverter' bits. | (~ A) resultará em -61, que é 1100 0011 na forma de complemento de 2 devido a um número binário com sinal. |
| << | Operador binário de deslocamento à esquerda. O valor dos operandos à esquerda é movido para a esquerda pelo número de bits especificado pelo operando à direita. | Um << 2 dará 240, que é 1111 0000 |
| >> | Operador binário de deslocamento à direita. O valor dos operandos à esquerda é movido para a direita pelo número de bits especificado pelo operando à direita. | Um >> 2 dará 15, que é 0000 1111 |
Observe que diferentes implementações de Pascal diferem em operadores bit a bit. Pascal livre, o compilador que usamos aqui, no entanto, suporta os seguintes operadores bit a bit -
| Operadores | Operações |
|---|---|
| não | NÃO bit a bit |
| e | E bit a bit |
| ou | OR bit a bit |
| xor | OR exclusivo bit a bit |
| shl | Deslocamento à esquerda |
| Shr | Deslocamento bit a bit para a direita |
| << | Deslocamento à esquerda |
| >> | Deslocamento bit a bit para a direita |
Precedência de operadores em Pascal
A precedência do operador determina o agrupamento de termos em uma expressão. Isso afeta como uma expressão é avaliada. Certos operadores têm precedência mais alta do que outros; por exemplo, o operador de multiplicação tem precedência mais alta do que o operador de adição.
Por exemplo, x = 7 + 3 * 2; aqui, x é atribuído a 13, não 20, porque o operador * tem precedência mais alta do que +, portanto, primeiro é multiplicado por 3 * 2 e, em seguida, soma 7.
Aqui, os operadores com a precedência mais alta aparecem na parte superior da tabela, aqueles com a mais baixa aparecem na parte inferior. Em uma expressão, os operadores de precedência mais altos serão avaliados primeiro.
Mostrar exemplos
| Operador | Precedência |
|---|---|
| ~, não, | Altíssima |
| *, /, div, mod e, & | |
| |,!, +, - ou, | |
| =, <>, <, <=,>,> =, em | |
| ou então, e então | O mais baixo |